并发编程(4):线程池

 

 

 

核心参数

corePoolSize:线程池核心线程数(平时保留的线程数),默认情况下核心线程会一直存活,即使处于闲置状态也不会受存keepAliveTime限制。除非将allowCoreThreadTimeOut设置为true。

maximumPoolSize:线程池最大线程数(当workQueue都放不下时,启动新线程,最大线程数)

keepAliveTime:超出corePoolSize数量的线程的保留时间。

unit:keepAliveTime单位

workQueue:阻塞队列,存放来不及执行的线程

ArrayBlockingQueue:构造函数一定要传大小

LinkedBlockingQueue:构造函数不传大小会默认为65536(Integer.MAX_VALUE ),当大量请求任务时,容易造成 内存耗尽。

SynchronousQueue:同步队列,一个没有存储空间的阻塞队列 ,将任务同步交付给工作线程。

PriorityBlockingQueue : 优先队列

threadFactory:线程工厂

handler:饱和策略

AbortPolicy(默认):直接抛弃

CallerRunsPolicy:用调用者的线程执行任务

DiscardOldestPolicy:抛弃队列中最久的任务

DiscardPolicy:抛弃当前任务

 

posted @ 2020-06-10 17:21  北大教授  阅读(44)  评论(0)    收藏  举报