线程池 实现原理 传统的多线程服务器模型 实现 短小精悍细解

                                     粉丝不过W

线程池

        很多的网络服务器( 包括 Web 服务器) :单位时间内必须处理数目巨大的连接请求, 但 处理时间却是比较短

       传统的多线程服务器模型 实现: 一旦有个请求到达, 就创建一个新的线程, 由该线程执行任务, 任务执行完毕之后, 线程就退出。 这就是" 即时创建,即时销毁 "的策略

       与创建进程相比, 创建线程的时间已经大大的缩短, 但如果 提交给线程的任务是执行时间较短, 而且执行次数非常频繁, 那服务器就 处于一个不停的创建线程销毁线程的状态。 这笔开销是不可忽略的, 尤其是线程执行的时间非常非常短的情况下

    线程池就解决了上面得问题

     实现原理:

             在应用程序启动之后, 就马上创建一定数量的线程, 放入空闲队列

             这些线程都处于阻塞状态, 这些线程只占一点内存, 不占用 CPU

            当任务到来后, 线程池将选择一个空闲的线程, 将任务传入此线程中运行

            当所有的线程都处在处理任务的时候, 线程池将自动创建一定的数量的新线程, 用于处理更多的任务

            执行任务完成之后线程并不退出, 而是继续在线程池中等待下一次任务

             当大部分线程处于阻塞状态时, 线程池将自动销毁一部分的线程, 回收系统资源

猜你喜欢

转载自blog.csdn.net/qq_44226094/article/details/105844804