Мне было интересно, знает ли кто-нибудь хорошие ресурсы для исследования того, как были реализованы пулы потоков. Меня попросили определить алгоритм, который динамически регулирует максимальный размер пула потоков. Большинство ресурсов определяют обстоятельства, в которых вам нужен пул потоков, т. е. задачи недолговечны, но в этой проблеме обстоятельства более разнообразны. Более длинные задачи, а также короткие, некоторые из них интенсивно используют процессор, некоторые часто простаивают.
Мой первый ответ был: «Вы, вероятно, не должны использовать пул потоков», но я думаю, что у меня должен быть реальный ответ.
Одна из моих мыслей заключалась в том, чтобы иметь эвристику для наблюдения за системными ресурсами (ЦП, память) и соответствующим образом регулировать размер. Или я мог бы отслеживать потоки, чтобы увидеть, сколько времени они занимают и сколько времени