多线程——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