粉丝不过W
线程池
很多的网络服务器( 包括 Web 服务器) :单位时间内必须处理数目巨大的连接请求, 但 处理时间却是比较短
传统的多线程服务器模型 实现: 一旦有个请求到达, 就创建一个新的线程, 由该线程执行任务, 任务执行完毕之后, 线程就退出。 这就是" 即时创建,即时销毁 "的策略
与创建进程相比, 创建线程的时间已经大大的缩短, 但如果 提交给线程的任务是执行时间较短, 而且执行次数非常频繁, 那服务器就 处于一个不停的创建线程和销毁线程的状态。 这笔开销是不可忽略的, 尤其是线程执行的时间非常非常短的情况下
线程池就解决了上面得问题
实现原理:
在应用程序启动之后, 就马上创建一定数量的线程, 放入空闲的队列中
这些线程都处于阻塞状态, 这些线程只占一点内存, 不占用 CPU
当任务到来后, 线程池将选择一个空闲的线程, 将任务传入此线程中运行
当所有的线程都处在处理任务的时候, 线程池将自动创建一定的数量的新线程, 用于处理更多的任务
执行任务完成之后线程并不退出, 而是继续在线程池中等待下一次任务
当大部分线程处于阻塞状态时, 线程池将自动销毁一部分的线程, 回收系统资源