所以,我很好奇.如何处理为线程设置最长执行时间?在线程池中运行时?
我有几种技巧,但我对它们并不十分满意.所以,我想我会问社区他们是怎么做的.
解决方法
通常,我只是从线程代码中定期轮询控制对象.就像是:
interface ThreadControl {
boolean shouldContinue();
}
class Timer implements ThreadControl {
public boolean shouldContinue() {
// returns false if max_time has elapsed
}
}
class MyTask implements Runnable {
private tc;
public MyTask(ThreadControl tc) {
this.tc = tc;
}
public void run() {
while (true) {
// do stuff
if (!tc.shouldContinue())
break;
}
}
}