044/200 创建线程池的六大方式

CS-Note 基础线程机制-Executor

Java之ThreadPoolExcutor和四种常见的线程池

1. Executors.newFixedThreadPool:

  • 创建一个固定大小的线程池,可控制并发的线程数,超出的线程会在队列中等待;
  • 当线程发生未预期的错误而结束时,线程池会补充一个新的线程。

2.Executors.newCachedThreadPool

  • 创建一个可缓存的线程池,如果线程池的规模超过了处理需求,将自动回收空闲线程,而当需求增加时,则可以自动添加新线程,线程池的规模不存在任何限制。

3. Executors.newSingleThreadExecutor:

  • 创建单个线程数的线程池,它可以保证先进先出的执行顺序;
  • 相当于大小为 1 的 FixedThreadPool。
  • SingleThreadExecutor的意义在于统一所有外界任务一个线程中,这使得这些任务之间不需要处理线程同步的问题

4. Executors.newScheduledThreadPool:

  • 创建了一个固定长度的线程池,而且以延迟或定时的方式来执行任务,类似于Timer

5.Executors.newSingleThreadScheduledExecutor:

  • 创建一个单线程的可以执行延迟任务的线程池;

6. Executors.newWorkStealingPool:

  • 创建一个抢占式执行的线程池(任务执行顺序不确定)

ThreadPoolExecutor构造函数参数详细介绍

public ThreadPoolExecutor(int corePoolSize,
                          int maximumPoolSize,
                          long keepAliveTime,
                          TimeUnit unit,
                          BlockingQueue<Runnable> workQueue,
                          ThreadFactory threadFactory,
                          RejectedExecutionHandler handler)
posted @ 2022-07-11 20:10  Craven胆小鬼  阅读(29)  评论(0)    收藏  举报