「java超时跳过」java超时队列
本篇文章给大家谈谈java超时跳过,以及java超时队列对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、Java:连接请求超时是什么意思?超时就不再请求了?
- 2、请问如何让java执行某条语句超时时跳过该语句(或抛出异常)
- 3、java 方法 执行超时处理
- 4、java 任务执行超时后,终止正在执行的任务
Java:连接请求超时是什么意思?超时就不再请求了?
连接请求超时 是在请求数据库或者请求网页时 防止应用一直占用资源的一个解决办法。
连接请求超时,一般是网络中断、阻塞等由于网络的问题造成的临时原因。
一般情况下连接超时之后,就进行再次请求,如果重复三次之后仍然是超时 那就不再请求了。
请问如何让java执行某条语句超时时跳过该语句(或抛出异常)
放到线程里(比如:Thread)执行
然后线程.join(2000);等待2秒,捕捉中断异常即可,到了两秒会触发中断异常,然后继续往下走
java 方法 执行超时处理
java 1.5以上的Future类可以执行超时处理。
jdk1.5自带的并发库中Future类中重要方法包括get()和cancel(),get()获取数据对象,如果数据没有加载,就会阻塞直到取到数据,而 cancel()是取消数据加载。另外一个get(timeout)操作,表示如果在timeout时间内没有取到就失败返回,而不再阻塞。
代码如下:
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import com.sun.corba.se.impl.orbutil.closure.Future;
import com.sun.corba.se.impl.orbutil.threadpool.TimeoutException;
public class ThreadTest {
public static void main(String[] args) throws InterruptedException,
ExecutionException {
final ExecutorService exec = Executors.newFixedThreadPool(1);
CallableString call = new CallableString() {
public String call() throws Exception {
//开始执行耗时操作
Thread.sleep(1000 * 5);
return "线程执行完成.";
}
};
try {
FutureString future = exec.submit(call);
String obj = future.get(1000 * 1, TimeUnit.MILLISECONDS); //任务处理超时时间设为 1 秒
System.out.println("任务成功返回:" + obj);
} catch (TimeoutException ex) {
System.out.println("处理超时啦....");
ex.printStackTrace();
} catch (Exception e) {
System.out.println("处理失败.");
e.printStackTrace();
}
// 关闭线程池
exec.shutdown();
}
}
java 任务执行超时后,终止正在执行的任务
在A中设置B的初始状态为“未超时”,在B中超时的话就把状态置为“已超时”。然后A的判断初始阶段加一个对B状态的判断,如果B是“未超时”状态程序往下走,否则直接退出。
PS:对提及多线程的那位仁兄表示匪夷所思,感觉跟多线程没有关系。
关于java超时跳过和java超时队列的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-22,除非注明,否则均为
原创文章,转载请注明出处。