1、线程池是单例的,全局唯一的,设置线程池最大活跃线程数是5,设置后,允许c#教程
同时并发的Task只有5个,我们开启100个task去做任务,从最后的输出结果看到,虽然sql语句开启了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();
}
}
}
举例和生活相结合,做一条快乐的小<。)#)))≦儿