23-阶段性并发任务中阶段转变的控制
3.6 阶段性并发任务中阶段转变的控制
Phaser 类提供了方法 onAdvance() ,并在阶段转变时自动调用此方法。该方法接收两个参数:一个是当前的编号;另一个是已注册的参与者数量。如果 Phaser 继续执行则返回布尔值 false ,如果 Phaser 完成所有阶段并将进入终止状态,则返回 true 。
onAdvance() 方法的默认实现为,如果Phaser上注册的参与者数量为0,则返回 true ,否则为 false 。但是可以通过继承 Phaser 类后重写 onAdvance() 方法,以便在每次阶段转变时都可执行一些自定义操作。本案例将模拟一场考试,它一共有3道考题,只有当所有同学完成当前考题后,才可以进入下一答题环节。