Java スレッドを正常に終了するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-11 20:22:03
オリジナル
813 人が閲覧しました

How to Gracefully Terminate a Java Thread?

Java スレッドを正常に終了する方法

実行中に停止する必要がある長時間実行スレッドに遭遇した場合、予期せぬ結果を避けるために正常に終了することが重要です。 .

これを実現するための一般的なアプローチは、スレッドの run() メソッド内に制御変数を導入することです。この変数 (通常はブール値のフラグ) は、終了リクエストを通知する番兵として機能します。

次の例を考えてみましょう。

class MyThread extends Thread {
  volatile boolean finished = false;

  public void stopMe() {
    finished = true;
  }

  @Override
  public void run() {
    while (!finished) {
      // Perform the necessary actions
    }
  }
}
ログイン後にコピー

メイン スレッドから、次のように実行を正常に停止できます。 stopMe() メソッドの呼び出し:

MyThread myThread = new MyThread();
myThread.start();

// Wait some time to simulate work
Thread.sleep(500);

myThread.stopMe();
ログイン後にコピー

以前、Java には stop() メソッドがありましたが、スレッドの状態を破損し、取得したロックを解除する可能性があるため、安全ではないと宣言されました。したがって、制御変数アプローチを使用することは、クリーンで制御されたスレッド終了を保証するための推奨される方法です。

以上がJava スレッドを正常に終了するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート