В настоящее время я изучаю Task Parallel Library и где-то читал, что TPL на самом деле использует механизм пула потоков из CLR-Level. Я не смог найти ни одной статьи, подтверждающей эту информацию. Я знаю, что TPL имеет очереди задач для каждого потока и использует некоторый специальный алгоритм кражи работы для балансировки. Насколько я знаю, он создает один поток для каждого процессора. Пулы потоков начали использовать объекты задач TPL начиная с .NET 4.
Не могу понять, как TPL использует пул потоков. Состояния шаблона пула потоков, рабочие элементы помещаются в очередь, и свободные потоки в пуле потоков получают один из этой очереди. TPL, однако, хранит элементы (задачи) в очередях потоков, и при необходимости работает похищение работ ... Таким образом, совсем по-другому. Где моя ошибка?
дополнительный вопрос: поскольку это был мой первый вопрос о переполнении стека, я не уверен, что он подходит. Это так?