整理java7中几种常见同步辅助类-Phaser
来源:互联网 发布:三维产品动画演示软件 编辑:程序博客网 时间:2024/06/07 11:42
1.Phaser
1.1解释
phaser用于并发阶段任务的运行,适用于有并发任务且需要分解成多步执行。另外Phaser类的方法不需要进行异常处理,它们不响应中断异常。
1.2基本工作流程
Phaser在任务每一步结束的位置对线程进行同步,当所有线程都完成这一步时,才允许执行下一步
1.3phaser的状态
1.活跃态(active)
2.终止态(termination)
3.注:
(1)当Phaser对象不存在参与同步的线程时,phaser是终止状态的,isTerminated()方法将返回true。
(2)phaser对象处于终止态时,arriveAndAwaitAdvance()会立即返回,而且不会做任何同步操作
1.3常见方法
arriveAndAwaitAdvance():当一个线程调用该方法时,Phaser对象将该线程置于休眠状态,直到所有其他线程完成这个阶段。当Phaser处于终止态时,返回负数
register():将一个新的参与者注册到Phaser中,新参与者被当成没有执行当前阶段。注:Phaser中参与者数目只是一个数字,phaser与参与者没有任何关联
bulkRegister():将指定数目的参与者注册到Phaser中,所有新参与者都被当成没有执行当前阶段
arriveAndDeregister():通知Phaser当前线程已经完成当前阶段,并且它不会参与到下一阶段任务中。
forceTermination():强制Phaser进入终止态。当一个线程产生错误时,强制终止Phaser是有意义的。
onAdvanced():该方法在Phaser阶段改变时自动被调用。接收2个参数,分别是当前阶段数以及参与者数量(阶段数从0开始)。返回值为boolean类型,若返回true,表示Phaser已经完成执行并进入终止态。若返回false表示Phaser还正在执行。该方法有一个默认实现,若参与者数量为0就返回true,否则返回false。若需要自定义某些操作,可以继承Phaser类覆盖该方法。注:Phaser对象进行阶段切换时,该方法在所有被休眠的线程被唤醒之前调用。
getRegisteredParties():获取Phaser中注册的参与者数量
可以改变Phaser对象的方法:
arrive():表示一个线程已经完成了当前阶段,并且不会等待其他线程也完成该阶段
awaitAdvance(Int phase):接受一个参数,如果传入参数与当前阶段数一致,则将当前线程置于休眠并等待其他线程完成该阶段。若不一致,立即返回。注:若Phaser处于终止态返回负数
awaitAdvanceInterruptibly(int phaser):该方法和awaitAdvance(int phase)异同点是该方法会响应中断异常,抛出InterruptedException异常
1.4常用构造器
Phaser(int parties):接受一个int类型参数,表示参与同步的线程数量
- 整理java7中几种常见同步辅助类-Phaser
- 整理java7中几种常见同步辅助类-信号量
- 整理java7中几种常见同步辅助类-CountDownLatch
- 整理java7中几种常见同步辅助类-CyclicBarrier
- 整理java7中几种常见同步辅助类-Exchanger
- 《java7并发编程实战》线程辅助类之Phaser
- Java并发编程-同步辅助类之Phaser
- Java并发编程-同步辅助类之Phaser
- Java7并发编程--3、线程同步辅助类
- java并发编程实战手册第三章同步辅助类Phaser
- 线程辅助类(五)--Phaser
- [笔记][Java7并发编程实战手册]第三章-线程同步辅助类-3.1概要
- Java7并发编程指南——第三章:线程同步辅助类
- Phaser类实现并发多阶段同步
- CountDownLatch同步辅助类
- 线程同步辅助类
- 线程同步辅助类
- 多线程同步辅助类
- Java线程之线程池--接口Executor、ExecutorService
- 找工作笔试面试那些事儿(9)---数据库知识总结(1)
- python学习(逐行读取文件)
- 基于TCP协议的客户端与服务器端程序
- duilib combo添加子项简化
- 整理java7中几种常见同步辅助类-Phaser
- swift3.0 简单的网络图片缓存原理
- html的<ul>标签与<ol>标签
- PreparedStatement要点
- 【面经笔记】STL
- 01-中文编码
- Android UI 相关要点
- Kickstart Practice Round 2 2017 Problem A. Diwali lightings
- LightOJ1132---Summing up Powers (矩阵快速幂+二项式定理(简单推理))