のjavadocからThreadPoolExecutor
:
メソッド execute(java.lang.Runnable) で新しいタスクが送信されると .... 実行中のスレッドが corePoolSize より多く、 maximumPoolSize より少ない場合、キューがいっぱいの場合にのみ新しいスレッドが作成されます。
ThreadPool
この状況でタスクをキューに送信する代わりに、新しいスレッドを開始するにはどうすればよいですか?
例:
corePoolSize=5 と maxPoolSize=10 のスレッドと無制限のキューがあります。
corePoolSizeスレッドが現在ビジーで、新しいタスクが到着したとします。プールは新しいスレッドを開始し、新しいタスクを実行する必要があります。
maxPoolSizeスレッドが現在ビジーで、新しいタスクが到着したとします。プールはタスクをキューに永続化する必要があり、最初に空きスレッドがこのタスクを取得して実行する必要があります。