Senior
43
Əgər corePoolSize=5, maxPoolSize=10, növbə=100 və əvvəlcə 5 tapşırıq, sonra isə 7 tapşırıq göndərilsə, nə baş verər?
Şirkətlər soruşuldu
Позитив Технолоджис
AI-dan cavab
sobes.tech Süni İntellekt
При заданных параметрах ThreadPoolExecutor:
- corePoolSize = 5
- maxPoolSize = 10
- очередь (BlockingQueue) = 100
Что произойдет при добавлении сначала 5 заданий, а потом ещё 7:
- Первые 5 заданий сразу запустятся в 5 core-потоках, так как количество активных потоков меньше corePoolSize.
- Следующие 7 заданий (с 6-го по 12-й) будут помещены в очередь, так как corePoolSize уже достигнут, а очередь не заполнена.
- Поскольку очередь не заполнена (вмещает до 100), новые потоки сверх corePoolSize не создаются, даже если maxPoolSize=10.
Итог:
- Активно 5 потоков (core)
- В очереди 7 заданий
- Потоки от 6 до 10 (maxPoolSize) не создаются, так как очередь не переполнена
Только когда очередь заполнится (более 100 задач), и core-потоки заняты, будут создаваться дополнительные потоки до maxPoolSize.