新しいスレッドで関数のサードパーティモジュールを呼び出す必要があります。私が見たところ、すべてがうまくいった場合、呼び出しはすぐに完了するか、スレッドをロックするためにハングするだけです。スレッドを開始して呼び出しを行い、数秒待ってからスレッドがまだ生きている場合は、スレッドがロックされていると想定して、非推奨のメソッドを使用せずにスレッドを強制終了(または停止または放棄)するのが良い方法です。
私は今のところこのようなものを持っていますが、これがそれを行うための最良の方法であるかどうかはわかりません。非推奨であるため、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();
}
}