Я пишу пользовательский поток пула с фиксированным количеством потоков.Этот пул потоков , а не динамически изменит количество потоков.Как определить идеальное количество потоков для пула?
Я понимаю, что в машине это обычно коэффициент #cores (N*#Cores
).Есть ли идеальное значение для N
?Если N
слишком мало, это означает, что ядра ЦП могут быть использованы не полностью, если потоки блокируют ввод-вывод, а также снижают параллелизм (количество задач, которые могут одновременно выполнять прогресс посредством переключения контекста потока).Если N
слишком высоко, то потоки будут конкурировать за ЦП, и, следовательно, задержка отдельных запросов может увеличиться.