并发控制工具相位器Phaser实现原理( 三 )
<< PHASE_SHIFT;boolean result = STATE.compareAndSet(this, s, n);}return phase;}} }最后再看onAdvance和isTerminated两个方法 。 onAdvance方法逻辑是注册的参与者数量是否为0 , 返回true表示需要终止相位器 。 isTerminated方法逻辑是直接判断state的值是否小于0 , 小于0则最高位为1 , 也就是long的符号位为1 , 即小于0 。
protected boolean onAdvance(int phase, int registeredParties) {return registeredParties == 0; } public boolean isTerminated() {return this.state < 0L; }
更多Java并发原理可关注作者下面的专栏:
【并发控制工具相位器Phaser实现原理】作者简介:笔名seaboat , 擅长人工智能、计算机科学、数学原理、基础算法 。 出版书籍:图解数据结构与算法、Tomcat内核设计剖析、图解Java并发原理、人工智能原理科普 。
- 教你用Siri来控制电脑:真香
- 未来科技:苹果AR眼镜苹果 Siri可控制眼镜
- 初探 iOS 自动化工具——快捷指令
- 微软官方数据恢复工具即将更新:更易于上手 优化恢复性能
- 免费好用:这款Win10系统增强工具不要错过(二)
- Flipper Zero将于下月发货:为极客打造的开源多功能小工具
- 比亚迪关联公司公开这项专利 能够解决交通工具能量补充问题
- 微软推实用磁盘工具DiskSpace 帮用户分析文件占用空间
- 含1.5克电变控制器 新款X-Shifter无线电变
- 元旦休假突发紧急办公 这款小工具足不出户让「远程办公」So easy