У меня в основном интенсивная загрузка процессора, которая выполняется в пуле потоков.
Операция, однако, имеет определенное количество ожидающих внешних событий, которые не происходят равномерно во времени.
Поскольку в Java, насколько мне известно, не существует реализации пула потоков, которая автоматически измеряет число потоков в зависимости от наблюдаемой пропускной способности задачи (как в Microsoft CLR 4), существует, по крайней мере, способ вручную передать пулу потоков увеличить его размер при запуске операции блокировки и уменьшить при завершении?
Например, для 8 ядер размер пула равен 8.
Если операция на 100% связана с процессором, просто используйте этот фиксированный пул.
Если есть какая-то операция блокировки, нужно уметь это делать:
pool.increase();
waitForSpecialKeyPress();
pool.decrease();
Вот как это делается в асинхронной библиотеке Microsoft C ++: Использование избыточной подписки для задержки смещения