ホームページ >Java >&#&チュートリアル >Java スレッドを安全かつ正常に停止するにはどうすればよいですか?

Java スレッドを安全かつ正常に停止するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-01 22:28:09497ブラウズ

How to Safely and Gracefully Stop a Java Thread?

Java スレッドを安全かつ正常に停止する方法

Java でマルチスレッドを使用する場合、スレッドを途中で終了する必要がある場合があります。適切な実行を保証し、システムの不安定性を防ぐには、スレッドを「適切に」停止することが重要です。これには、スレッドが実行を終了する前に重要な操作を完了できるようにすることが含まれます。

問題:

実行に過度に時​​間がかかるスレッドを作成しました。 。未完了のように見えても、スレッドを正常に停止したいと考えています。

解決策:

これを達成するための推奨されるアプローチは、ターゲット スレッド内のブール変数を利用することです。 run()メソッド。このフラグを外部から true に設定すると、スレッドに正常に終了するよう通知されます。以下に例を示します:

class MyThread extends Thread {

    volatile boolean finished = false;

    public void stopMe() {
        finished = true;
    }

    @Override
    public void run() {
        while (!finished) {
            // Perform tasks
        }
    }
}

stop() メソッドを避ける:

以前は Thread.stop() メソッドが存在していましたが、その使用は強く行われています。落胆した。 Java のドキュメントによると、このメソッドは実行時に「ロックされているすべてのモニターのロックを解除」するため、データの不整合や任意の動作が発生する可能性があります。

したがって、上に示したようにブール型フラグを利用すると、安全かつ安全な操作が保証されます。制御されたスレッド終了メカニズム。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。