VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > c#编程 >
  • 证明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();
        }
    }
}
复制代码

 

举例和生活相结合,做一条快乐的小<。)#)))≦儿

相关教程