Недавно я пытался понять, как решение класса ThreadPool работает в .NET 4.0. Я пытался прочитать отраженный код, но он кажется мне слишком обширным.
Может ли кто-нибудь объяснить простыми словами, как работает этот класс, т.е.
- Как он хранит каждый приходящий метод
- Является ли это потокобезопасным, предположительно, несколько потоков пытаются поставить в очередь свои методы в пуле потоков?
- Когда он достигает предела доступных потоков, как он возвращается для выполнения оставшегося пакета, ожидающего в очереди, когда один из потоков становится свободным? Есть ли какой-нибудь механизм обратного вызова для этого?