并发-线程池

线程池,使用Executors创建

CachedThreadPool

ExecutorService e = Executors.newCachedThreadPool()

底层:

ThreadPoolExecutor(

0,

Interger.MAX_VALUE,

60L,

TimeUnit.SECONDS,

new synchronousQueue()

)

FixedThreadPool

new的时候规定大小

ExecutorService e = Executors.newFixedThreadPool()

底层:

ThreadPoolExecutor(

arg1,

arg1

0L,

TimeUnit.MILLISECONDS,

new LinkedBlockingsQueue()

)

arg1是传入参数

LinkedBlockingQueue是无限大的

同步队列大小为0,也就是不存数据。

SingleThreadExecutor

大小只有1的FixedThreadPool

ExecutorService e = Executors.newSingleThreadExecutor()

其实都是ThreadPoolExcutor,只是传入参数不同

构造方法

ThreadPoolExecutor(

int corePoolSize, 核心池大小*

int maximumPoolSize, 总池子大小*

long keepAliveTime, 时间*

TimeUnit unit, 时间单位

BlockingQueue workQueue, 阻塞队列*

ThreadFactory threadFactory,生成线程的线程工厂

RejectExcutionHandler handler 当拒绝执行时的处理函数

)

加*的是重点

你可能感兴趣的:(并发-线程池)