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