首页 > 编程语言 > 详细

线程池

时间:2019-04-29 18:38:31      阅读:201      评论:0      收藏:0      [点我收藏+]

线程池相关类

ExecutorService , 线程池接口

Executors   线程池工具类,可以生成不同类型的线程池,

        Executors.newFixedThreadPool(3); //固定数量的线程池   corePoolSize=maximumPoolSize=3
        Executors.newCachedThreadPool(); //缓存线程池corePoolSize =0,maximumPoolSize=Integer.MAX_VALUE,
        Executors.newSingleThreadExecutor();//单线程池 corePoolSize=maximumPoolSize=1
        Executors.newScheduledThreadPool(3); //支持定时或者周期性任务执行
        Executors.newWorkStealingPool(); //支持并行执行任务
 Executors.newFixedThreadPool(3);调用的是new ThreadPoolExecutor

技术分享图片

所以ThreadPoolExecutor线程池的真正实现类

向线程池提交任务

带返回值

技术分享图片

不带返回值

技术分享图片

execute(Runnable) 内部的逻辑

技术分享图片

 

    1.如果当前线程池内线程数量小于corePoolSize 数量,会创建一个新的线程,去执行该任务
    2.如果线程内线程数大于corePoolSize,则会将任务 提交到 workQueue(阻塞队列)。通过offer方法添加,会立即返回是否添加成功
    3.如果workQueued队列已经满了,而当前线程池内线程数量小于maximumPoolSize ,
      则创建一个新的线程执行该任务,如果当前线程池内线程数量大于maximumPoolSize数量,则执行拒绝策略
    

 

线程池

原文:https://www.cnblogs.com/moris5013/p/10791966.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!