Java Phaser awaitAdvanceInterruptibly() 方法

2025年3月21日 | 3 分钟阅读

awaitAdvanceInterruptibly() 方法属于 Phaser 类。使用此方法,可以在给定的 Phaser 值下等待当前 Phaser 的阶段。

语法

参数

phase: 当前 Phaser 的值

返回

它返回下一个到达的 Phaser 的编号。

抛出

InterruptedException - 如果在等待时线程被中断,则抛出此异常。

示例 1

输出

Thread is sleeping
Thread-0 arrived
Thread-4 arrived
Thread-2 arrived
Thread-3 arrived
Thread-5 arrived
Thread-1 arrived

示例 2

输出

Thread is sleeping
Thread-0 arrived
Thread-1 arrived

Java Phaser awaitAdvanceInterruptibly(int phase, long timeout, TimeUnit unit)

Phaser 类的 awaitAdvanceInterruptibly() 方法会等待该 Phaser 的阶段推进,直到给定的超时时间过去或达到给定的阶段值。

语法

参数

phase - 这是一个到达阶段的编号

timeout - 等待时间

unit - 这是一个 TimeUnit,用于确定如何解释 timeout 参数

返回值

它返回下一个到达的阶段编号。如果返回负数,则表示返回的参数

抛出

InterruptedException - 如果等待时线程被中断,则抛出此异常

waitingTimeoutException - 如果等待时超时,则抛出此异常

示例 3

输出

Thread is sleeping
Thread-0 arrived
Thread-4 arrived
Thread-2 arrived
Thread-3 arrived
Thread-5 arrived
Thread-1 arrived

示例 4

输出

Thread is sleeping
Thread-0 arrived
Thread-1 arrived
 
下一话题Java Phaser