首页 > 代码库 > Java线程池
Java线程池
线程池的好处
1. 降低资源的消耗
通过重复利用已创建的线程降低线程创建和销毁所造成的消耗
2. 提高响应速度
当任务到达时,任务可以不需要等到线程创建就能立即执行
3. 提高线程的可管理型
线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一分配、调优和监控。
实现原理
当提交一个新任务到线程池时,线程池的处理流程为:
1). 线程池判断核心线程池里的线程是否都在执行任务。
如果不是,则创建一个新的工作线程来执行任务。如果核心线程池里的线程都在执行任务,则进入下个流程。
2). 线程池判断工作队列是否已经满。
如果工作队列没有满,则将新提交的任务存储在这个工作队列里。如果工作队列满了,则进入下个流程。
3). 线程池判断线程池的线程是否都处于工作状态。
如果没有,则创建一个新的工作线程来执行任务。如果已经满了,则交给饱和策略来处理这个任务。
ThreadPoolExecutor执行execute()方法的示意图:
Java线程池
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。