ホームページ  >  記事  >  Java  >  Javaスレッドプールを閉じる方法

Javaスレッドプールを閉じる方法

王林
王林転載
2023-05-09 11:58:152943ブラウズ

1, shutdown() メソッドは、スレッド プールを安全にシャットダウンするためのもので、shutdown メソッドを呼び出した後、すぐにスレッド プールを閉じるのではなく、スレッド プール内の多くのタスクを実行するか、待機します。キュー内で実行されるタスクを確認します。すべてのタスクが完了するまで待ってから、スレッド プールを閉じます。

2、isShutdown() メソッドは、スレッド プールは閉じ始めていますが、完全に閉じられたかどうかを判断できません。

3. isterminated() メソッドは、スレッド プールが完全にクローズされているかどうかを判断できるため、shutdown を呼び出した後、タスクを実行すると、isshutdown を呼び出すと true が返され、isterminated を呼び出すと false が返されます。

awaiterminationこのメソッドは、スレッド プールが完全に閉じられているかどうかを判断するもので、isterminated と似ていますが、待機時間を受け入れます。このメソッドを呼び出すと、次の状況が発生する可能性があります。

(1) 待機期間中 (待機状態への移行を含む)、スレッド プールは閉じられ、送信されたすべてのタスク (実行中およびキュー内で待機中のタスクを含む) が閉じられます。完了しました。これはスレッド プールの終わりに相当します。メソッドは true

(2) を返します。タイムアウトを待っても、初期スレッド プールは終了しません。メソッドは false

( 3) スレッドは待機中に中断され、メソッドはインターネット例外をスローします。

shutdownNow: スレッド プールをただちにシャットダウンし、まずスレッド プール内のスレッドに割り込み信号を送信し、スレッドの割り込みを試みてから、キューで待機しているタスクをスレッドに戻します。これらのタスクを解決できる発信者。

したがって、ビジネス ニーズに応じてスレッド プールを停止する適切な方法を選択できます。たとえば、通常は shutdown() メソッドを使用してシャットダウンし、送信されたタスクを完了できますが、状況が緊急の場合は、shutdownnow メソッドを使用してスレッド プールの終了を早めることができます。

以上がJavaスレッドプールを閉じる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。