非推奨の Thread.stop() メソッドを使用せずにスレッドを効果的に強制終了する方法
Java Thread クラスは stop() メソッドを提供しますスレッドを終了する手段として使用されますが、非推奨になっているため、使用しないでください。この記事では、割り込みメソッドを使用してスレッドを終了する別の方法を紹介します。
割り込みを使用してスレッドを停止する
安全ではない stop() を直接呼び出す代わりに、データ破損を引き起こす可能性がある場合は、割り込みを使用して、スレッドが正常に終了する必要があることをスレッドに通知できます。その仕組みは次のとおりです:
public class InterruptedExceptionExample { private static volatile boolean shutdown = false; public static void main(String[] args) { Thread thread = new Thread(() -> { while (!shutdown) { try { System.out.println("Running..."); Thread.sleep(5000); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } }); thread.start(); System.out.println("Press enter to quit"); try { System.in.read(); } catch (IOException e) { e.printStackTrace(); } shutdown = true; thread.interrupt(); } }
このコードでは:
使用の利点中断:
スレッドの中断には、非推奨の stop() に比べていくつかの利点があります:
以上が「Thread.stop()」を使用せずにJavaスレッドを安全に停止するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。