Java中如何实现线程的超时中断

2024-11-16 12:54:32
推荐回答(1个)
回答1:

如果你是要在子线程超时后直接关闭的话可以这样:
exec=Executors.newFixedThreadPool(1);
Callable call = new Callable() {
public String call() throws Exception {
//开始操作

//TimeTaskTest.star(null);
return "线程执行完成";
}
};
Future future = exec.submit(call);
//设置为30分钟超时
future.get(1000*60*time , TimeUnit.MILLISECONDS);
=========================================
如果你是在进行其他操作的话那就比较麻烦了,目前我想到的是在子线程中一直访问某个变量,超时时守护线程改变这个值,然后子线程读到后退出,不过这个有个问题,就是当子线程卡死在某个环节时完全无用