Ho un programma che genera thread (~ 5-150) che eseguono una serie di attività. Inizialmente, ho usato un FixedThreadPool
perché questa domanda simile suggeriva che fossero più adatti per attività più longeve e con la mia conoscenza molto limitata del multithreading, consideravo la vita media dei thread (diversi minuti) "di lunga durata ".
Tuttavia, di recente ho aggiunto la possibilità di generare thread aggiuntivi e così facendo mi porta al di sopra del limite di thread che ho impostato. In questo caso, sarebbe meglio indovinare e aumentare il numero di thread che posso consentire o passare a un fileCachedThreadPool
modo da non avere thread sprecati?
Provandoli entrambi preliminarmente, non sembra esserci differenza, quindi sono propenso ad andare con il CachedThreadPool
solo per evitare gli sprechi. Tuttavia, la durata dei thread significa che dovrei invece scegliere FixedThreadPool
e occuparmi solo dei thread inutilizzati? Questa domanda fa sembrare che quei thread extra non siano sprecati, ma apprezzerei il chiarimento.