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

                                     粉丝不过W

线程池

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

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

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

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

     实现原理:

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

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

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

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

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

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

 

全部评论

相关推荐

点赞 评论 收藏
分享
粗心的雪碧不放弃:纯学历问题,我这几个月也是一直优化自己的简历,后来发现优化到我自己都觉得牛逼的时候,发现面试数量也没有提升,真就纯学历问题
点赞 评论 收藏
分享
头像
10-15 22:27
已编辑
门头沟学院 C++
罗格镇的小镇做题家:我投了hr打电话来说学历太低了不符合要求,建议投荣耀,结果荣耀也投了一定水花没有,非本211硕
投递华为等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务