.NET CLR线程的种类至少3个线程:主线程、调试线程、终结器线程
wait threads异步等待的线程worker threads执行用户处理工作Completion port threads (io完成端口线程) WCF里面就用到了这个线程种类Gate thread (负责监控工作线程和IO挖出呢很难过端口线程1个)
Timer thread(监控计时器队列1个)
通过ThreadPool类可以容易使用线程池ThreadPool.QueueUserWorkItem(WaitCallback,object)方法是将waitCallback委托的方法排入队列以便执行,并制定包含该方法所用的数据对象object参数线程池里面的线程的数量是可以限制,可以通过setmaxThreads设置线程池的最大值,默认是1000个,缺点:线程池需要管理,这个就是缺点,我感觉这个管理怎么说呢?难度很大吗?好像涉及到GC部分的知识点了
注意: 是主要干活的4.5是必须的线程可以放在线程池里面,也可以不放在线程池里面
前台线程、后台线程一个进程中哦必须有一个前台线程,否则进程退出后台线程不需要保存托管的执行环境后台线程啥都不管new thread创建的都属于前台线程前台线程如果死掉了,后台线程也肯定挂掉了前台线程负责保存托管执行环境的状态前台是老板,后台是工人典型的例子:浏览器是多进程多线程编程的多线程编程利用了多核CPU,实现了高并发
.NET线程池, 线程种类, 前台线程, 后台线程, 多线程编程
.NET CLR线程包括主线程、调试线程、终结器线程等,线程池中的线程种类多样,如等待线程、工作线程、完成端口线程等,通过ThreadPool类可方便使用线程池,线程数量可限制,前台线程和后台线程在进程中各有作用。