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

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

Susan Sarandon
リリース: 2024-11-20 13:26:16
オリジナル
670 人が閲覧しました

How Can I Gracefully Interrupt a Java Thread?

Java スレッドを中断する適切なタイミングはいつですか?

スレッドがタスクを完了するのに時間がかかりすぎて、完了する気配がないときすぐに、適切に停止することを検討した方がよいでしょう。この問題には、主に 2 つのアプローチがあります。1 つは非推奨の stop() メソッド、もう 1 つはブール値フラグを使用した推奨される堅牢なアプローチです。

廃止された stop() メソッド

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 サイトの他の関連記事を参照してください。

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