Какой ThreadPool в Java я должен использовать?

Есть огромное количество задач. Каждое задание относится к одной группе. Требование заключается в том, что каждая группа задач должна выполняться последовательно, как и в одном потоке, а пропускная способность должна быть максимальной в среде с несколькими ядрами (или несколькими процессорами). Примечание: существует также огромное количество групп, которое пропорционально количеству задач.

Наивное решение использует ThreadPoolExecutor и синхронизировать (или заблокировать). Однако потоки будут блокировать друг друга, и пропускная способность не будет максимальной.

Есть идея получше? Или существует сторонняя библиотека, удовлетворяющая требованию?

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

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