スレッドをタイムアウトする方法
一定時間スレッドを実行したい。その時間内に完了しない場合は、強制終了するか、例外をスローするか、何らかの方法で処理します。どうすればできますか? このスレッドから理解した方法の1つ は、スレッドのrun()メソッド内でTimerTaskを使用することです。 これに対するより良い解決策はありますか? 編集:私はより明確な答えが必要だったので、賞金を追加します。以下に示すExecutorServiceコードは私の問題に対応していません。実行後にsleep()を実行する必要があるのはなぜですか(一部のコード-このコードの一部を処理できません)?コードが完了し、sleep()が中断された場合、それはどのようにタイムアウトになりますか? 実行する必要があるタスクは私の制御下にありません。任意のコードを使用できます。問題は、このコードが無限ループに陥る可能性があることです。それが起こらないようにしたい。そのため、別のスレッドでそのタスクを実行したいだけです。親スレッドは、そのスレッドが終了するまで待機する必要があり、タスクのステータス(つまり、タイムアウトしたか、何らかの例外が発生したか、または成功したかどうか)を知る必要があります。タスクが無限ループに入った場合、私の親スレッドは無期限に待機し続けますが、これは理想的な状況ではありません。