java线程池 实现原理

java线程池 实现原理java线程池实现原理线程池的好处:降低资源消耗提高响应速度提高线程的可管理性线程池的实现原理下图是提交一个新任务到线程时,线程池的处理流程!ThreadPoolExecutor执行execute方法分下面4种情况如果当前运行的线程少于corePoolSize,则创建新线程来执行任务(注意!执行该步骤需要获取全局锁)如果运行的线程等于或者多于corePoolSize,…

大家好,欢迎来到IT知识分享网。

java线程池 实现原理

线程池的好处:

  1. 降低资源消耗
  2. 提高响应速度
  3. 提高线程的可管理性

线程池的实现原理

下图是提交一个新任务到线程时,线程池的处理流程

线程处理流程.jpg!

ThreadPoolExecutor执行execute方法分下面4种情况

  1. 如果当前运行的线程少于corePoolSize,则创建新线程来执行任务(注意!执行该步骤需要获取全局锁)
  2. 如果运行的线程等于或者多于corePoolSize ,则将任务加入BlockingQueue
  3. 如果无法将任务加入BlockingQueue (队列已满),则创建新的线程来处理任务(注意!执行该步骤需要获取全局锁)
  4. 如果创建线程将使当前运行的线程超过maximumPoolSize,任务将被拒绝,并调用RejectedExecutionHandler.rejectedExecution() 方法。

线程池执行原理.jpg

  • 线程池中的线程执行任务分两种情况

执行任务示意图.jpg!

  1. 在execute()方法中创建一个线程时,会让这个线程执行当前任务。
  2. 这个线程执行完上图中1的任务后会反复从BlockingQueue获取任务来执行。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/15625.html

(0)
上一篇 2024-02-15 21:26
下一篇 2024-02-16 07:45

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信