「java线程超时」java怎么设置线程超时
本篇文章给大家谈谈java线程超时,以及java怎么设置线程超时对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
java使用线程操作,等待线程后续时间过长报超时异常,如何操作使线程推出数据后即算线程操作结束
java中使用用线程控制Task任务,启动下面的线程就可以了,new Thread(new Task()).start() ;public class
Task implements Runnable {//新建一个任务
private TextArea textArea;
public Task(TextArea textArea){
this.textArea = textArea;
}
public void run() {
while (true) {
this.textArea.setText("这里设置: 输出的一段文字");
try {
Thread.sleep(500); // 这里设置:隔多长时间
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
Java中如何实现线程的超时中断
如果你是要在子线程超时后直接关闭的话可以这样:
exec=Executors.newFixedThreadPool(1);
CallableString call = new CallableString() {
public String call() throws Exception {
//开始操作
//TimeTaskTest.star(null);
return "线程执行完成";
}
};
FutureString future = exec.submit(call);
//设置为30分钟超时
future.get(1000*60*time , TimeUnit.MILLISECONDS);
=========================================
如果你是在进行其他操作的话那就比较麻烦了,目前我想到的是在子线程中一直访问某个变量,超时时守护线程改变这个值,然后子线程读到后退出,不过这个有个问题,就是当子线程卡死在某个环节时完全无用
关于Java线程超时退出的问题.
你在捕捉到的异常中,调用一下线程的interrupt()方法就可以对线程进行中断,当然,你的线程中的run方法中不能catch了interrupt()异常并且忽视这个异常。
比如在出现异常的地方:
threadA.interrupt();
而threadA的run方法中:
public void run() {
while(true) {
try {
....
} catch (InterruptedException) {
break; //这样是可以的,如果没有break或者修改为continue则不行
}
}
}
也可以将这个放在while循环之外。
public void run() {
try {
while(true) {
....
}
} catch (InterruptedException) {
....
}
}
关于java线程超时和java怎么设置线程超时的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-25,除非注明,否则均为
原创文章,转载请注明出处。