アイドル時に予約されるスレッドプール内のコアスレッドの数

デフォルトのコアスレッド数はクリアされません。keepAliveTimeはコアスレッドの数に影響を与えません

  • keepAliveTime:タスクの実行が終了しないときにスレッドが最大で保持する時間を示します。
  • デフォルトでは、keepAliveTimeは、スレッドプール内のスレッド数がcorePoolSizeより大きい場合、つまりスレッドプール内のスレッド数がcorePoolSize以下になるまで、つまりスレッドプール内のスレッド数が多い場合にのみ機能します。 corePoolSizeよりも、スレッドがアイドル状態の場合時間がkeepAliveTimeに達すると、スレッドプール内のスレッド数がcorePoolSizeを超えなくなるまで終了します。
  • ただし、allowCoreThreadTimeOut(boolean)メソッドが呼び出された場合、スレッドプール内のスレッド数がcorePoolSize以下の場合、keepAliveTimeパラメーターはスレッドプール内のスレッド数が0になるまで機能します。
  • allowCoreThreadTimeOutはデフォルトでfalseです。つまり、スレッドプールが手動で閉じられない限り、コアスレッドは時間の経過とともに閉じられません。スレッドは破棄されます。
  • allowCoreThreadTimeOutがtrueに設定されている場合、スレッドのアイドル時間はkeepAliveTimeに達し、コアスレッドの数を持つすべてのスレッドが閉じられます。

スレッドプールExecutorService内のアイドルスレッドの数

おすすめ

転載: blog.csdn.net/yangshengwei230612/article/details/114638035