Java でスレッドを正常に開始、停止、再起動する方法

Mary-Kate Olsen
リリース: 2024-10-31 11:37:29
オリジナル
632 人が閲覧しました

How to Gracefully Start, Stop, and Restart Threads in Java?

Java のスレッドライフサイクル: 開始、停止、再起動

Java の同時実行にはスレッド管理が不可欠です。この記事では、スレッドの開始、停止、再開という難題に対処します。

スレッドの開始

Runnable クラスまたは Callable クラスをインスタンス化し、それをThread オブジェクトは、スレッドを開始する従来の方法です。

スレッドの停止

よくある誤解にもかかわらず、スレッドを突然停止することはお勧めできません。代わりに、スレッドに正常に終了するよう通知します。

  1. 目的の終了状態 (isTerinated) を示す揮発性ブール変数を定義します。
  2. スレッドの run メソッド内で isTerinated を定期的に確認します。
  3. isTerinated が true の場合、スレッドの実行を停止します。

スレッドの再開

スレッドが停止すると、直接再開することはできません。ただし、次のオプションを考慮してください:

  • 新しいスレッドの作成: 既存のスレッドを終了し、同じタスクで新しいスレッドを作成します。
  • 一時停止/Resume Thread: スレッドを停止するのではなく、一時停止します。再開する必要がある場合は、実行を続行するように通知します。これにより、スレッドが確実に存続し、スレッドの作成と破棄を繰り返し行うオーバーヘッドが回避されます。

スレッドの終了例:

public class Task implements Runnable {

    private volatile boolean isTerminating;

    @Override
    public void run() {
        while (!isTerminating) {
            // Perform task
        }
        System.out.println("Thread terminated.");
    }

    public void setIsTerminating(boolean terminating) {
        this.isTerminating = terminating;
    }
}
ログイン後にコピー

メイン必要に応じて、setIsTermination(true) と join() を呼び出して、スレッドが正常に終了するのを待ちます。

以上がJava でスレッドを正常に開始、停止、再起動する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!