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