美文网首页
线程池(四)线程池底层工作原理

线程池(四)线程池底层工作原理

作者: 香山上的麻雀 | 来源:发表于2020-02-04 20:19 被阅读0次

    主要流程:

    文字说明:

    • 在创建了线程池后,等待提交过来的任务请求
    • 当调用execute()方法添加一个请求时,线程池会做如下判断:
      • 如果正在运行的线程数量小于corePoolSize,那么马上创建线程运行这个任务;
      • 如果正在运行的线程数量大于或等于corePoolSize,那么将这个任务放入队列;
      • 如果这个时侯队列满了且正在运行的线程数量还小于maxmumPoolSize,那么还是要创建非核心线程立刻运行这个任务;
      • 如果队列满了且正在运行的线程数量大于或等于maximumPoolSize,那么线程池会启动饱和拒绝策略来执行;
    • 当一个线程完成任务时,它会从队列中取下一个任务来执行;
    • 当一个线程无事可做超过一定时间(keepAliveTime)时,线程池会判断:
      如果当前运行的线程数量大于corePoolSize,那么会将这个线程停掉。所以线程池所有任务完成后它会最终收缩到corePoolSize的大小。

    相关文章

      网友评论

          本文标题:线程池(四)线程池底层工作原理

          本文链接:https://www.haomeiwen.com/subject/ncedxhtx.html