Junior — Middle
Cum puteți configura un pool de fire pentru a evita crearea de fire inutile?
sobes.tech AI
Răspuns de la AI
Pentru a evita crearea de fire inutile în pool-ul de fire, trebuie să configurați corect parametrii pool-ului:
- Stabiliți un număr fix sau maxim limitat de fire. De exemplu, utilizați
Executors.newFixedThreadPool(n), undeneste numărul de fire care pot funcționa simultan. - Utilizați o coadă de sarcini cu limitare de dimensiune, astfel încât sarcinile noi să nu creeze fire suplimentare peste limită.
- Configurați politica de gestionare a sarcinilor în cazul depășirii cozii (de exemplu, respingere sau așteptare), pentru a nu crea fire noi.
- Utilizați
ThreadPoolExecutorcu parametrii corePoolSize și maximumPoolSize egali, astfel încât pool-ul să nu se extindă peste dimensiunea stabilită.
Exemplu de creare a unui pool fix de fire în Android/Java:
ExecutorService executor = Executors.newFixedThreadPool(4); // maximum 4 fire