5, 100, 1000?
Полагаю, "это зависит", но от чего?
Что общего в приложениях, которые работают как серверные демоны / службы?
Что такое жесткие ограничения?
Учитывая, что машина может справиться с общей рабочей нагрузкой, как определить, на сколько потоков накладные расходы начинают влиять на производительность?
Каковы важные различия между ОС?
Что еще следует учитывать?
Я спрашиваю, потому что я хотел бы использовать потоки в приложении для организации подкомпонентов моего приложения, которые не обмениваются данными и предназначены для параллельной работы. Поскольку приложение также будет использовать пулы потоков для распараллеливания некоторых задач, мне было интересно, в какой момент мне следует задуматься о количестве потоков, которые будут работать в общей сложности.
Я знаю правило n + 1 как руководство для определения количества потоков, которые одновременно работают над одной и той же задачей, чтобы повысить производительность. Тем не менее, я хочу использовать потоки, как можно использовать процессы в большем объеме, т.е. е. организовывать самостоятельные задания, которые не должны мешать друг другу.
В этом связанном вопросе некоторые люди советуют минимизировать количество потоков из-за дополнительной сложности. Мне кажется, что потоки также могут помочь упорядочить вещи и фактически уменьшить помехи. Разве это не правильно?