ホームページ >Java >&#&チュートリアル >Java スレッドを正常に中断するにはどうすればよいですか?
スレッドがタスクを完了するのに時間がかかりすぎて、完了する気配がないときすぐに、適切に停止することを検討した方がよいでしょう。この問題には、主に 2 つのアプローチがあります。1 つは非推奨の stop() メソッド、もう 1 つはブール値フラグを使用した推奨される堅牢なアプローチです。
stop() メソッドは、以前は廃止されました。かつてはスレッドを停止するための実行可能なオプションでしたが、いくつかの欠点がありました。最大の問題は、スレッドが一貫性のない状態のままになり、予期しない動作やデータ破損につながる可能性があることでした。
スレッドの安全性を確保し、潜在的な問題があるため、ブール変数を使用してスレッドの実行を制御することをお勧めします。その仕組みは次のとおりです。
class MyThread extends Thread { // Flag to indicate when to stop the thread volatile boolean finished = false; // Method to request the thread to stop public void stopMe() { finished = true; } @Override public void run() { // Continuously check the flag until it is set to true while (!finished) { // Perform the thread's tasks here } } }
このアプローチを使用すると、finished フラグを true に設定してスレッドを正常に停止できます。スレッドは、実行中にこのフラグを定期的にチェックし、フラグが true になると終了します。
スレッドの割り込みは、絶対に必要な場合、およびスレッドが割り込みを正常に処理することが保証できる場合にのみ実行してください。データの不整合やシステム障害の原因となります。
以上がJava スレッドを正常に中断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。