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