無期限にループする傾向があり、タイムアウト機能が組み込まれていないサードパーティ関数 (runThird() など) を使用しています。ただし、それを強制終了することはできます (killThird())。これを行う適切な方法はありますか (つまり、いくつかの同時実行構造)?
これが私の試みです:
java.lang.Thread thread = new Thread(new Runnable(){
@Override
public void run(){
try {
Thread.sleep(TIMEOUT);
} catch (java.lang.InterruptedException e){
return;
}
killThird();
}
});
thread.start();
RunThirdResult rtr = runThird();
if (thread != null){
thread.interrupt();
}
しかし、スリープを使用してスレッドを作成するオーバーヘッドと、runThird() が返された場合にスレッドを中断するという工夫が好きかどうかはわかりません。