共同学习Java源代码-多线程与并发-ThreadPoolExecutor类(二)
来源:互联网 发布:苏德瓜分波兰 知乎 编辑:程序博客网 时间:2024/04/29 02:00
private final BlockingQueue<Runnable> workQueue;
这个是阻塞队列 装的是工作线程
private final ReentrantLock mainLock = new ReentrantLock();
这个是可重入锁 锁的是下面的worker set
private final HashSet<Worker> workers = new HashSet<Worker>();
这个是workers集合 获取了上面的锁 就可以操作
private final Condition termination = mainLock.newCondition();
awaitCondition中的终止状态
private int largestPoolSize;
最大线程池大小
private long completedTaskCount;
已完成的任务数
private volatile ThreadFactory threadFactory;
volatile类型的线程工厂 这是一个接口 就一个抽象方法newThread 传入Runnable实现类即可返回一个Thread
private volatile RejectedExecutionHandler handler;
这个是拒绝策略的handler 为volatile类型
private volatile long keepAliveTime;
这个是空闲线程最多存活时间 为volatile类型
private volatile boolean allowCoreThreadTimeOut;
只有这个为true 上面那个空闲线程最多存活时间才会起作用
private volatile int corePoolSize;
保证线程池能够存活的最小线程数 如果上面那个为true 这个值可以为0 且线程池还会存活
private volatile int maximumPoolSize;
最大线程池大小 和CAPACITY有关
private static final RejectedExecutionHandler defaultHandler =new AbortPolicy();
默认的拒绝策略为Abort 也就是忽略
- 共同学习Java源代码-多线程与并发-ThreadPoolExecutor类(二)
- 共同学习Java源代码-多线程与并发-ThreadPoolExecutor类(一)
- 共同学习Java源代码-多线程与并发-ThreadPoolExecutor类(三)
- 共同学习Java源代码-多线程与并发-ThreadPoolExecutor类(四)
- 共同学习Java源代码-多线程与并发-FutureTask类(二)
- 共同学习Java源代码-多线程与并发-AbstractExecutorService类(二)
- 共同学习Java源代码-多线程与并发-FutureTask类(一)
- 共同学习Java源代码-多线程与并发-FutureTask类(三)
- 共同学习Java源代码-多线程与并发-AbstractExecutorService类(一)
- 共同学习Java源代码-多线程与并发-AbstractExecutorService类(三)
- 共同学习Java源代码-多线程与并发-Executor、ExecutorService接口
- 共同学习Java源代码-多线程与并发-Future、RunnableFuture接口
- 共同学习Java源代码-多线程与并发-BlockingQueue接口
- 共同学习Java源代码-多线程与并发-CompletionService接口和ExecutorCompletionService类
- 共同学习Java源代码--常用工具类--AbstractStringBuilder(二)
- 共同学习Java源代码--常用工具类--StringBuffer(二)
- 共同学习Java源代码--数据结构--AbstractCollection抽象类(二)
- 共同学习Java源代码--数据结构--AbstractList抽象类(二)
- 交叉熵代价函数(作用及公式推导)
- STM32Cube工具学习笔记(一)Cube配置
- 读写锁(Read-Write Lock)
- 计数排序、桶排序和基数排序
- enq: SQ
- 共同学习Java源代码-多线程与并发-ThreadPoolExecutor类(二)
- iOS 截取view生成图片
- 贪食蛇设计
- jquery off后怎么重新on回去
- 王坚博士:挑战离年轻人更近,未来才离我们更近
- indexOf的运用:查找字符串是否存在
- TortoiseSVN下载,安装,配置,常用操作 svn教程
- golang中管道替换问题
- mysql 批量插入数据(INNODB)优化