我想运行一个线程一段固定的时间。如果在该时间内没有完成,我想要终止它,抛出一些异常,或者以某种方式处理它。怎样才能做到呢?
其中一种方法是我从这个线程中找到的 是在线程的run()方法中使用一个TimerTask
有没有更好的解决方案?
< p >, < br > 编辑:添加赏金,因为我需要一个更明确的答案。下面给出的ExecutorService代码没有解决我的问题。为什么我应该在执行(一些代码-我没有处理这段代码)后睡觉()?如果代码完成并且sleep()被中断,那怎么可能是timeOut呢?< / p >需要执行的任务不在我的控制范围内。它可以是任何一段代码。问题是这段代码可能会进入一个无限循环。我不希望发生这种事。我只想在一个单独的线程中运行这个任务。父线程必须等待该线程完成,并需要知道任务的状态(即是否超时或发生了一些异常或是否成功)。如果任务进入无限循环,我的父线程将无限期地等待,这不是理想的情况。