Senior
Какво ще се случи, ако corePoolSize=5, maxPoolSize=10, опашка=100 и първо изпратим 5 задачи, след това още 7?
sobes.tech AI
Отговор от AI
С дадените параметри на ThreadPoolExecutor:
- corePoolSize = 5
- maxPoolSize = 10
- опашка (BlockingQueue) = 100
Какво ще се случи при първоначално добавяне на 5 задачи, а след това още 7:
- Първите 5 задачи ще се изпълнят веднага в 5 основни нишки, тъй като броят на активните нишки е по-малък от corePoolSize.
- Следващите 7 задачи (от 6 до 12) ще бъдат поставени в опашката, тъй като corePoolSize вече е достигнат и опашката не е пълна.
- Тъй като опашката не е пълна (може да съдържа до 100), нови нишки над corePoolSize не се създават, дори ако maxPoolSize=10.
Резултат:
- 5 активни нишки (core)
- 7 задачи в опашката
- Нишки от 6 до 10 (maxPoolSize) не се създават, тъй като опашката не е пълна.
Само когато опашката се запълни (повече от 100 задачи) и основните нишки са заети, ще се създават допълнителни нишки до maxPoolSize.