java中的几种线程池

Executor顶层接口。

ExecutorService继承Executor接口。

AbstractExecutorService抽象类,继承ExecutorService接口。

ThreadPoolExecutor 线程池和ForkJoinPool两者都继承AbstractExecutorService抽象类。

Executors线程池工厂,所有的工厂方法中线程池创建都是使用此类封装。此类不可实例化。

ScheduledExecutorService 继承ExecutorService接口

 

ScheduledThreadPoolExecutor继承ThreadPoolExecutor类,实现ScheduledExecutorService接口

 

Executors中的几种线程池

  • public static ExecutorService newFixedThreadPool(int nThreads);创建一个固定大小的、可重用的线程池。任务队列使用的是LinkedBlockingQueue
  • public static ExecutorService newWorkStealingPool(int parallelism);此种线程池为JDK8才引入的,与其他线程池不同的是,此方法返回的是一个ForkJoinPool类型的线程池它创建一个带并行级别的线程池,如不传并行级别参数,默认为当前系统的CPU个数。
  • public static ExecutorService newSingleThreadExecutor();创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。任务队列使用的是LinkedBlockingQueue
  • public static ExecutorService newCachedThreadPool();创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。任务队列使用的是SynchronousQueue
  • public static ScheduledExecutorService newSingleThreadScheduledExecutor();底层是ScheduledThreadPoolExecutor,线程池大小固定为1,它在ExecutorService的基础上扩展了在给定时间执行某任务的功能,任务队列使用的是DelayedWorkQueue
  • public static ScheduledExecutorService newScheduledThreadPool(int corePoolSize);底层也是ScheduledThreadPoolExecutor,线程池大小可以指定。任务队列使用的是DelayedWorkQueue

转载于:https://www.cnblogs.com/huster-huwentao/p/10490706.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值