java.lang.Object
|---ohos.utils.ConditionHelper
public class ConditionHelper
extends Object
一个帮助类,用于使用 java.util.concurrent.locks 包中内置的 Condition 类,而不处理 Lock 和 java.lang.InterruptedException 异常。
ConditionHelper 对象提供用于挂起线程(使其等待)或唤醒等待线程的接口。 它支持无限等待或定时等待。 线程在被唤醒或经过指定的等待时间后才会退出等待状态。
使用 ConditionHelper 类时要注意以下几点:
构造函数 | 描述 |
---|---|
ConditionHelper() | 用于创建具有默认唤醒状态 false 的 ConditionHelper 实例的构造函数。 |
ConditionHelper(boolean isWakeup) | 用于创建具有指定唤醒状态的 ConditionHelper 实例的构造函数。 |
修饰符和类型 | 方法 | 描述 |
---|---|---|
void | await() | 挂起当前线程,直到它被唤醒。 |
boolean | await(long awaitMs) | 暂停当前线程,直到它被唤醒或等待时间过去。 |
void | resetCondition() | 将唤醒状态重置为 false,然后您可以调用 await()。 |
void | wakeup() | 唤醒当前对象的线程并将其唤醒状态设置为 true。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
public ConditionHelper()
用于创建具有默认唤醒状态 false 的 ConditionHelper 实例的构造函数。
public ConditionHelper(boolean isWakeup)
用于创建具有指定唤醒状态的 ConditionHelper 实例的构造函数。
参数:
参数名称 | 参数描述 |
---|---|
isWakeup | 指示要设置的唤醒状态。 true表示线程被唤醒,false表示线程未被唤醒。 |
public void wakeup()
唤醒当前对象的线程并将其唤醒状态设置为 true。
如果没有调用resetCondition()重置唤醒状态,下次调用await()或await(long awaitMs)方法时会立即返回执行结果。
public void resetCondition()
将唤醒状态重置为 false,然后您可以调用 await()。
public void await()
挂起当前线程,直到它被唤醒。
如果对象的唤醒状态为 true,则立即返回该方法的执行结果。
如果发生 java.lang.InterruptedException 异常,当前线程继续等待,直到被唤醒。 唤醒后,可以使用 Thread.currentThread().isInterrupted() 来检查线程是否被中断。
public boolean await(long awaitMs)
暂停当前线程,直到它被唤醒或等待时间过去。
如果对象的唤醒状态为 true,则立即返回该方法的执行结果。
如果发生 java.lang.InterruptedException 异常,当前线程继续等待。 线程被唤醒或等待时间过去后,可以使用 Thread.currentThread().isInterrupted() 来检查线程是否被中断。
请注意,此方法无法确保精确的时序,因为它使用系统时钟。 如果系统时钟发生变化,可能会影响时序精度。
参数:
参数名称 | 参数描述 |
---|---|
awaitMs | 表示等待时间,以毫秒为单位。 如果此参数设置为 0,则线程保持等待。 |
返回:
如果线程等待被唤醒,则返回 true; 如果线程一直等到等待时间过去,则返回 false。
备案信息: 粤ICP备15087711号-2
Copyright © 2008-2024 啊嘎哇在线工具箱 All Rights.
本站所有资料来源于网络,版权归原作者所有,仅作学习交流使用,如不慎侵犯了您的权利,请联系我们。