Пул потоков против множества отдельных потоков

Я нахожусь в центре проблемы, когда я не могу решить, какое решение принять.

Проблема немного уникальна. Скажем так: я получаю данные из сети постоянно (от 2 до 4 раз в секунду). Теперь все данные принадлежат другой, скажем, группе. Теперь давайте вызовем эти группы, group1, group2 и так далее.

Каждая группа имеет выделенную очередь заданий, в которой данные из сети фильтруются и добавляются в соответствующую группу для обработки.

Сначала я создал отдельный поток для каждой группы, который будет принимать данные из очереди заданий, обрабатывать их, а затем переходить в состояние блокировки (используя очередь связанных блокировок).

Но мой старший предложил мне использовать пулы потоков, потому что таким образом потоки не будут блокироваться и будут использоваться другими группами для обработки.

Но в том-то и дело, что получаемые данные достаточно быстрые, а время, необходимое потоку для его обработки, достаточно велико, чтобы поток, возможно, не перешел в режим блокировки. И это также гарантирует, что данные будут обрабатываться последовательно (задание 1 выполняется до задания 2), что при объединении очень малые шансы могут не произойти.

Мой старший также склонен к тому, что объединение в пул также сэкономит нам много памяти, потому что потоки объединены в пул (я думаю, он действительно выбрал слово;)). Хотя я не согласен с этим, потому что, лично я думаю, объединены или нет, каждый поток получает свою собственную память стека. Если в пулах потоков нет чего-то, о чем я не знаю.

И последнее, я всегда думал, что объединение помогает, когда рабочие места появляются в большом количестве за короткое время. Это имеет смысл, потому что порождение потока было бы снижением производительности, потому что время, затрачиваемое на инициацию потока, намного больше, чем время, потраченное на выполнение работы. Так что объединение здесь очень помогает.

Но в моем случае group1, group2, ..., groupN всегда остаются живыми. Так что, если есть данные или нет, они все равно будут там. Так что нерест не является проблемой здесь.

Мой старший не убежден и хочет, чтобы я выбрал решение для пула, потому что его память занимает много места.

Итак, какой путь выбрать?

Спасибо.

Ответы на вопрос(2)

Ваш ответ на вопрос