所以,我很好奇.如何处理为线程设置最长执行时间?在线程池中运行时?
我有几种技巧,但我对它们并不十分满意.所以,我想我会问社区他们是怎么做的.
解决方法
通常,我只是从线程代码中定期轮询控制对象.就像是:
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; } } }