线程池

分两种:

1.ThreadPoolExecutor

2.ForkJoinPool  分解汇总

 

ThreadPool线程池,维护着两个集合:线程集合,任务队列

 ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(2,4,
                60,TimeUnit.SECONDS,
                new ArrayBlockingQueue<Runnable>(4),
                Executors.defaultThreadFactory(),
                new ThreadPoolExecutor.DiscardOldestPolicy());
ThreadPoolExecutor七个参数:
1.核心线程数(corePoolSize):默认不参与归还操作系统,有参数可以指定是否归还
2.最大线程数(maximumPoolSize):线程不够时,能扩展到最多是多少
3.生存时间(keepAliveTime):指定线程多长时间不工作,需要归还给操作系统
4.生存时间的单位
5.任务队列:上面例子队列最多装4个任务
6.线程工厂:产生线程
7.拒绝策略:一开始线程池中没有任何线程,来一个任务起一个线程,紧接着来一个任务再起一个线程,当第三个任务来了,2个核心线程都忙着时,则加入任务队列,当任务队列满了(4个),核心线程依然忙着时,起新的线程。当第九个任务来时,如果所有线程都忙着,任务队列也满着,此时执行拒绝策略。
拒绝策略可以自定义,JDK默认提供四种:
-1.Abort:抛异常  
-2.Discard:扔掉,不抛异常  
-3.DiscardOldest:扔掉排队时间最久的  
-4.CallerRuns:调用者处理任务,哪个线程调用了线程池的execute()方法,哪个线程去处理
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值