Java のスレッド終了: Thread.stop() はなぜ廃止されるのですか?
Java の Thread.stop() は、固有の理由により廃止されます。安全性の問題。 Thread.stop() を使用してスレッドを停止すると、そのスレッドが保持しているロック (モニター) が突然解除され、オブジェクトが不整合な状態のままになり、予期しない動作が発生する可能性があります。この動作は予測不可能であり、検出が難しい場合があります。
モニターについて
モニターは、共有リソースへのスレッドセーフなアクセスを保証する同期オブジェクトです。スレッドがモニターのロックを取得すると、ロックを解放するまでリソースに排他的にアクセスできます。 Thread.stop() が呼び出されると、スレッドはすべてのロックを即座に解放します。これにより、他のスレッドも同じリソースにアクセスしている場合、データの破損や競合状態が発生する可能性があります。
Thread.stop( の代替) )
Thread.stop() は強く推奨されないため、Java はスレッドを正常に停止するための代替メカニズムを提供します。 1 つのアプローチは、ブール値のフラグまたは変数を使用して、スレッドに終了するよう通知することです。スレッドはこのフラグを定期的にチェックし、それが true になったときに終了できます。
もう 1 つのアプローチは、協調的な中断メカニズムを実装することです。 Java のスレッドは、interrupt() メソッドを呼び出すことで中断できます。スレッドが中断されると、スレッドは実行を停止したり、特定の方法で中断に応答したりするなどして、このイベントを適切に処理できます。
以上がThread.stop() が Java で非推奨になった理由: 安全性への懸念と代替案を検討してください。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。