證明task線程是來源於線程池的,線程重用


1、線程池是單例的,全局唯一的,設置線程池最大活躍線程數是5,設置后,允許同時並發的Task只有5個,我們開啟100個task去做任務,從最后的輸出結果看到,雖然開啟了100個task,但是線程id始終是那5個如圖所示

2、結論:證明task是來源於線程池的,而且線程是重用的

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();
        }
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM