线程池可以设置最小线程数量和最大线程数量
好比银行里最多就只有10个窗口,可能人少的时候不会全部开放,人多了动态开一些窗口
这样最少会开1个窗口(否则就直接关门算了),最多可以开10个窗口线程池也一样,设置了最小线程数量之后,哪怕队列里没有任何任务,线程也不会释放,会一直等待着,这样有任务就可以立即处理,而不用先开线程;达到最大线程数量之后,就不会继续开更多的线程,以免造成CPU负担过重反而降低效率线程池里动态开线程是有一个过程的,不会像你手动启动线程一样那么快.有人测试过大约是每秒可以开2个线程.

解决方案 »

  1.   

    你会看到有 9800 个过程、而且每一次都会执行到 Console.WriteLine("nestedThread1") 语句,并不会等待。然后,系统线程池并不会一下子启动很多线程,平均1秒钟只会启动2、3个线程而已。当你的子程序运行得非常快,一下子就结束了,那么系统线程池用不了几个线程就能完成你这9800个子任务了!