并发编程(五)Java中常用的线程池方法总结
目录
1.1Executors的方法ApI
1.2常用方法说明
①newSingleThreadExecutor
单个线程的线程池,即线程池中每次只有一个线程工作,单线程串行执行任务
②newFixedThreadPool(n)
固定数量的线程池,没提交一个任务就是一个线程,直到达到线程池的最大数量,然后后面进入等待队列直到前面的任务完成才继续执行
③newCachedThreadPool(推荐使用)
可缓存线程池,当线程池大小超过了处理任务所需的线程,那么就会回收部分空闲(一般是60秒无执行)的线程,当有任务来时,又智能的添加新线程来执行。
④ newScheduleThreadPool
大小无限制的线程池,支持定时和周期性的执行线程
比较重要的几个类:
ExecutorService |
真正的线程池接口。 |
ScheduledExecutorService |
能和Timer/TimerTask类似,解决那些需要 任务重复执行的问题。 |
ThreadPoolExecutor |
ExecutorService的默认实现。 |
ScheduledThreadPoolExecutor |
继承ThreadPoolExecutor的ScheduledExecutorService 接口实现,周期性任务调度的类实现。 |
1.3创建方法
ExecutorServicepool = Executors.newSingleThreadExecutor();
1.4常用的方法为例
public static ExecutorService newCachedThreadPool() {
|
不难发现者就是一个工程方法创建了ThreadPoolExecutor()指点unnableTaskQueue为SynchronousQueue