我必须在新线程上调用函数 3rd 方模块。据我所见,如果一切顺利,调用要么很快完成,要么永远挂起锁定线程。什么是启动线程并进行调用并等待几秒钟的好方法,如果线程仍然活着,那么假设它被锁定,杀死(或停止或放弃)线程而不使用任何不推荐使用的方法。
我现在有这样的东西,但我不确定这是否是最好的方法,我想避免调用 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();
}
}