Короткий ответ: вам нужно подумать о ресурсах + нагрузка + бенчмаркинг.
Вот некоторые из способов, которыми вещи могут сломаться:
- У вас есть свободные темы? Достаточно ли коротка рабочая нагрузка, чтобы поток выполнялся так долго, что другой поток зависает в ожидании повторного назначения (т. Е. Больше потоков, чем работы)?
- Достаточно ли у вас работы? Является ли общая задача выполненной так быстро, что не стоит думать о дополнительных потоках? Помните, что увеличение многопоточности увеличивает накладные расходы на некоторую (иногда) небольшую, но измеримую величину.
- Есть ли у вас доступные ресурсы? У вас есть еще темы, чтобы дать? У вас есть циклы процессора, которые бездействуют?
Итак, вкратце, я бы сказал, что вам нужно подумать, прежде чем печатать. Если у вас уже есть код, который работает вообще, это похоже на деньги в банке. Стоит ли тратить больше времени на повышение производительности этого кода или возврат инвестиций будет слишком низким (или отрицательным!)?