ForkJoinPool框架设计与实现
1、类层次图
ctl:
占8个字节
AC:活动工作线程数减去目标并发度
TC:总工作线程数减去目标并发度
SS:版本号及最上层等待线程的状态
ID:等待的Treiber栈顶的池索引
初始值为
this.ctl = ((np << AC_SHIFT) & AC_MASK) | ((np << TC_SHIFT) & TC_MASK),其中np = (long)(-parallelism)
this.config = (parallelism & SMASK) | mode,同步模式时mode=0,异步模式时mode=1<<16
runState:
状态名 | 状态值 |
RSLOCK | 1 |
RSIGNAL | 1<<1 |
STARTED | 1<<2 |
STOP | 1<<29 |
TERMINATED | 1<<30 |
SHUTDOWN | 1<<31 |
2、WorkQueue
工作队列有两类
(1)有工作线程绑定的队列:数组下标为奇数,称为task queue队列中的任务均由工作线程调用产生
(2)没有工作线程绑定的队列:数组下标为偶数,称之为submissions queue,由execute/submit/invoke或者ForkJoinTask.fork产生
scanState:
状态值 | 状态说明 |
<0 | 未激活 |
奇数 | 扫描 |
3、任务提交流程
4、工作线程任务执行流程
ForkJoinPool框架设计与实现相关推荐
- MegEngine 框架设计
MegEngine 框架设计 MegEngine 技术负责人许欣然将带了解一个深度学习框架是如何把网络的定义逐步优化并最终执行的,从框架开发者的视角来看待深度学习. 背景 AI 浪潮一波又一波,仿佛不 ...
- 软件框架设计的艺术----读书总结
总结 软件开发的艺术 理想主义,经验主义和无绪 文艺复兴时期,现代科学产生了两个重量级理论: 理性主义和经验主义. 理性主义认为理智是信息的首要来源.给出一个假设,只要通过思考就能理解和描述这个世界, ...
- 从 Servlet 入手带你看架构和框架设计的套路
以下代码相信大家都很熟悉,大学时学 Java Web 都写过这样的代码. 从第一次接触 Servlet 到之后的很长一段时间内,我都没理解 Servlet 是个什么玩意? 为什么要有 Servlet ...
- Java 反射:框架设计的灵魂
作者 l 会点代码的大叔(CodeDaShu) 在学习 Java 反射之前,先让我们看看这几个概念. 01 解释型语言和编译型语言 解释型语言:不需要编译,在运行的时候逐行翻译解释:修改代码时可以直接 ...
- 《精通自动化测试框架设计》—第1章 1.3节五天太久,还能压缩吗
本节书摘来自异步社区<精通自动化测试框架设计>一书中的第1章,第1.3节五天太久,还能压缩吗,作者陈冬严 , 邵杰明 , 王东刚 , 蒋涛,更多章节内容可以访问云栖社区"异步社区 ...
- 通用数据级别权限的框架设计与实现(4)-单条记录的权限控制
查看上篇文章通用数据级别权限的框架设计与实现(3)-数据列表的权限过滤,我们开始在原来的基础上实现单条权记录的权限控制. 相信前面的列表权限控制,很多系统都可以做到,但如何在上面列表的权限过滤中实现通 ...
- 自动化测试基础篇--Selenium框架设计(POM)
一.自动化测试框架 感谢木棉花的漂泊分享,内容转自链接:http://www.cnblogs.com/fengyiru6369/p/8053035.html 1.什么是自动化测试框架 简单来说,自动化 ...
- 《精通自动化测试框架设计》—第2章 2.3节测试数据交互基本方法
本节书摘来自异步社区<精通自动化测试框架设计>一书中的第2章,第2.3节测试数据交互基本方法,作者陈冬严 , 邵杰明 , 王东刚 , 蒋涛,更多章节内容可以访问云栖社区"异步社区 ...
- 《精通自动化测试框架设计》目录—导读
作者简介 精通自动化测试框架设计 陈冬严,浙江大学硕士,具有10年软件测试和团队管理的工作经验,先后服务于ITSM.PLM软件研发企业,现就职于某金融行业核心机构IT规划部门.业余时间喜欢园艺. 邵杰 ...
最新文章
- 如何构造强度较高的密码
- 2018年HBase生态社群画像 +最全资料汇总下载
- 面试官:讲讲Spring框架Bean的加载过程
- oozie的作业调度
- python有趣代码-python有趣的一行代码
- jquery.MultiFile 实现自动删掉上传列表
- 通过jQuery源码学习javascript(三)
- B端产品经理,应从哪些方面理解业务?
- 美创意 -vue 组件的网站
- ELK下logstash通过redis收集日志
- 2022-04-25 安装PostgreSQL的发现小bug
- visio作图的一系列坑
- 用visio画用例图
- 【李峋的爱心代码4】
- php中的时间戳_php时间戳是什么
- QQ微信营销软件防封操作秘籍
- Activiti 自定义流程图颜色
- python如何启动excel_如何用python打开excel
- django图书管理系统:
- Python网络爬虫与信息提取笔记08-实例2:淘宝商品比价定向爬虫
热门文章
- Ubuntu 11.10 Server下搭建Maven私服
- Lucene:依据索引查找文档
- Ajax Toolkit Control ——CollapsiblePanelExtender(隐藏显示效果)
- python真的那么火吗-前言、Python是真的火,还是炒得火?来看看它的前世和发展...
- monty python life of brian-50大最搞笑喜剧片,无厘头成必杀技!
- python request-python-request-各方法使用及格式
- python手机版打了代码运行不了-如何用iPad运行Python代码?
- python官网地址-python官网地址
- 精通python-助你精通python,这些学习资源请收好
- python怎么画条形图-用Matplotlib如何绘制条形图、直方图和散点图