一、線程池是單例的,全局惟一的,設置線程池最大活躍線程數是5,設置後,容許同時併發的Task只有5個,咱們開啓100個task去作任務,從最後的輸出結果看到,雖然開啓了100個task,可是線程id始終是那5個如圖所示併發
二、結論:證實task是來源於線程池的,並且線程是重用的spa
namespace task_threadpool { class Program { static void Main(string[] args) { ThreadPool.SetMaxThreads(5, 5); for (int i = 0; i < 100; i++) { int k = i; Task.Run(() => { Console.WriteLine($"This is {k} running ThreadId={Thread.CurrentThread.ManagedThreadId.ToString("00")}"); Thread.Sleep(2000); }); } Console.Read(); } } }