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