我必须在新线程上调用第三方功能模块。从我所看到的情况来看,如果一切进展顺利,或者只是挂起线索锁定,呼叫就会很快完成。有什么方法可以启动线程并进行调用并等待几秒钟,如果线程仍然活着,然后假设它已被锁定,则可以在不使用任何废弃方法的情况下杀死(或停止或放弃)线程。在java中识别和处理锁定线程的最佳方法
我现在有类似的东西,但我不确定这是否是最好的方式来做到这一点,我想避免调用Thread.stop(),因为它已被弃用。谢谢。
private void foo() throws Exception
{
Runnable runnable = new Runnable()
{
@Override
public void run()
{
// stuff that could potentially lock up the thread.
}
};
Thread thread;
thread = new Thread(runnable);
thread.start();
thread.join(3500);
if (thread.isAlive())
{
thread.stop();
throw new Exception();
}
}
所以基本上你想启动一个线程,然后停止它,如果它仍然活着一段时间后? – 2010-06-17 19:15:39
@matt_b是的,正好! – 2010-06-17 19:43:02