лучший способ - это проанализировать вашу программу и выяснить, как ее можно сравнить с оптимальной стоимостью по сравнению с производительностью.Потоки, даже в таких языках, как go, имеют нетривиальные накладные расходы;а в таких языках, как java, это может привести к значительным накладным расходам.
Вы должны понимать, какая стоимость отправки операции в поток зависит от времени ее выполнения, и какие модели выполнения вы моделируете.может подать заявку на это.Например, если вы попытаетесь:
for (i = 0; i < NTHREAD; i++) {
t[i] = create_thread(PerformAction, ...);
}
for (i = 0; i < NTHREAD; i++) {
join_thread(t[i]);
}
Вы можете подумать, что сделали это замечательно, однако поток NTHREAD-1 не запустится, пока вы не заплатите накладные расходы за создание других.Напротив, если вы создали потоки в древовидной структуре и ваша ОС не работает, вы можете получить значительно меньшую задержку.
Итак, лучшая практика: измерять, писать для общего случая и настраиватьдля конкретного.