线程池的流程图及策略

Java-五种线程池,四种拒绝策略,三种阻塞队列(常用)

 

ExecutorService threadPool = Executors.newFixedThreadPool(5);

 

1.public static ExecutorService newFixedThreadPool()

2.public static ExecutorService newScheduledThreadPool()

3.public static ExecutorService newSingleThreadExecutor()

4.public static ExecutorService newCachedThreadPool()

5.  threadPool = new ThreadPoolExecutor();//默认线程池,可控制参数比较多 

4种拒绝策略

  1. AbortPolicy(默认):丢弃任务并抛出RejectedExecutionException异常。
  2. CallerRunsPolicy:由调用线程处理该任务。
  3. DiscardPolicy:丢弃任务,但是不抛出异常。可以配合这种模式进行自定义的处理方式。
  4. DiscardOldestPolicy:丢弃队列最早的未处理任务,然后重新尝试执行任务。

三种阻塞队列:
    BlockingQueue<Runnable> workQueue = null;
    workQueue = new ArrayBlockingQueue<>(5);//基于数组的先进先出队列,有界
    workQueue = new LinkedBlockingQueue<>();//基于链表的先进先出队列,无界
    workQueue = new SynchronousQueue<>();//无缓冲的等待队列,无界

 

流程图

 

 

 

 

posted @ 2021-02-19 11:44  蜡笔没了芯  阅读(393)  评论(0编辑  收藏  举报