线程池入门

1.阻塞队列 体系结构

          -Collection
                              -Queue
                                             - BlockQueue
                                                                     重要的实现类
                                                                             1.ArrayBlockingQueue  底层是数组  
                                                                              2.LinkedBlockingQueue           底层是链表  :默认长度是 21 亿
                                                                              3.SynchronousQueue               里边只能存放一个
2.线程池  核心类
                  Executor  :线程池根
                  ExecutorService :重要接口
                  ThreadPoolExecutor  :非常重要的类
 
3.常见的线程池操作
                           Executors.newFixedThreadPool(5)  指定大小
                           Executors.newSingleThreadExecutor()  只能一个线程
                           Executors.newCachedThreadPool()      忙不过来多个线程,忙的过来单个线程
 
4.线程池7大参数
corePoolSize : 线程池中常驻的核心线程数
maximumPoolSize :最大线程数:线程池中同时可以执行的最大线程数
workQueue: 阻塞队列
RejectedExecutionHandler:拒绝策略
ThreadFactory :默认工厂
 
keepAliveTime:多余的空闲线程的存活时间,当前线程池数量超过corePoolSize 时,当空闲时间达到keepAliveTime 值时,多余空闲线程会被销毁,直到只剩下corePoolSize 个线程为止
 
5.线程池的拒绝策略
RejectedExecutionHandler
      AbortPolicy(默认):直接抛出RejectedExecutionException 异常阻止系统正常运行
      CallerRunsPolicy:调用者运行一种调用机制,该策略不会抛出异常,而是将某些任务回退到调用者,从而降低流量
     DiscardOldestPolicy:抛弃队列中等待最久的任务,然后把当前任务加入到队列再尝试提交任务
      DiscardPolicy: 直接丢弃任务,不予任何处理,如果允许任务丢失,这是最好的一个解决方案
更多免费技术资料可关注:annalin1203
posted @ 2020-05-27 09:23  幽暗森林之猪大屁  阅读(85)  评论(0编辑  收藏  举报