CLR via C# 读书笔记 11 何时使用线程或者线程池

一般来说在尽可能的情况下使用线程池

除了以下的4个情况

  1. 需要手动控制线程运行在非默认的优先级上(不推荐)
  2. 需要表现为前台线程
  3. 需要长时间的运行一个任务
  4. 想要手动控制一个线程的生命周期(例如Abort)


-------------------------------

其实我觉得还有两个重要的方面

线程池是全局共享的,也就是说一个程序往线程池里面塞入一些任务 ,那么必然会影响到其他人

极端的情况,就是你占用了所有的线程池中的对象,而其他程序就无法正常运行了(包括.net本身的一些线程)

那么关键就是

  不要长时间或者大量占用线程池,除非能够确定当前程序是这个服务器上最重要的程序

  在较大压力的服务器上,或者你预期程序会消耗大量的资源,最好自己实现一个可控制的线程池(例如CodeProject上面的一些开源实现),这样你可以更好的控制和调度系统资源的使用.

     



原文地址:https://www.cnblogs.com/PurpleTide/p/1875745.html