Se non hai bisogno di particolari features da impostare sui vari thread (es. assegnare priorità diverse da quella di default) puoi usare la classe threadpool che per operazioni brevi è più efficente. In generale, per default non ci sono più di 25 thread in esecuzione contemporaneamente sulla stessa cpu anche se ne hai fatti partire 100. Mano a mano che finiscono i primi entrano in gioco quelli in attesa in coda. Altra considerazione, se hai molti thread cpu intensive in esecuzione contemporaneamente, ti ritrovi con il computer impiantato. Meglio pochi thread che sfruttano in maniera più efficente la cpu magari con alta priorità. Occhio poi che se i thread dipendono tra di loro, il procedimento di sincronizzazione e di lock potrebbe diminuire i vantaggi del multithreading.