多线程——ThreadPool


参考:

C# AppDomain 详解_勇于尝试,却要三思后行。-CSDN博客_appdomain

一、为什么用线程池

1、因为线程的创建需要内存,太多线程会造成内存浪费

2、因为线程的销毁都需要耗费时间,

3、因为线程的调度执行会涉及线程上下文的切换,太多的线程这个过程会消耗性能(线程的管理消耗会变大)

 AppDomain、进程、线程关系:C# AppDomain 详解_勇于尝试,却要三思后行。-CSDN博客_appdomain

理论:

1、线程池的线程的数量最好由系统去分配,不要人为指定,因为线程池有一个内部机制:线程池创建一个线程去响应所有请求,当请求速度大于线程处理速度时,才会创建新的线程,

这样能在满足服务处理的情况下,最大程度减少线程开支,认为指定做不到这么精准高效

2、线程池的线程执行任务完毕后会返回线程池,进入空闲等待状态,等待响应其他请求,自身不会销毁,所以能减少性能损失

3、线程池的线程默认为后台线程

Demo地址:

https://files.cnblogs.com/files/summerZoo/ThreadPoolStudy.zip?t=1646912799