Condition.signal()
或 Condition.signalAll()
调用的 Condition.await()
的调用。
在没有相应 Condition.signal()
的线程中调用 Condition.await()
,可能导致该线程被禁用,直到它被中断或发生“虚假唤醒”为止。
该检查仅报告针对当前类的目标字段的调用。
示例:
class Queue {
private final Condition isEmpty = ...;
void add(Object elem) {
// ...
// isEmpty.signal();
// ...
}
void remove(Object elem) throws InterruptedException {
// ...
isEmpty.await(); // 'await()' 不包含相应的 'signal()'/'signalAll()' 调用
// ...
}
}