Не с этим дизайном.Некоторые альтернативные конструкции могут выполнять одну из следующих задач, но, естественно, имеют свою собственную банку с червями.
«Вилка»
Для каждой работы вы запускаете новый поток или процесс, давая ему работу
Делегирование
Делегирование задачи в очередь в каждом потоке.Каждый поток извлекает из своей собственной уникальной очереди.
Stride
У вас есть кольцевой буфер, и каждый поток проверяет с различным интервалом.EG Num_threads + thread.id
Это, вероятно, не для вашей ситуации.
Диапазон
Поток отвечает за ряд заданий.num_threads * thread.id
Это, вероятно, не для вашей ситуации.