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