JD.UMC.WAIT

当方法在 java.util.concurrent.locks.Condition 对象上调用 wait() 时,发生 JD.UMC.WAIT。

漏洞与风险

该代码不会达到预期结果。

缓解与预防

应通过条件接口定义的一种 await() 方法执行等待条件。

示例 1

复制
     void waitForCondition(Condition cond) {
         try {
             cond.wait();
         } catch (InterruptedException e) {
             return;
         }
     }
     // corrected code
     void waitForCondition2(Condition cond) {
         try {
             cond.await();
         } catch (InterruptedException e) {
             return;
         }
     }

针对第 13 行的调用报告 JD.UMC.WAIT:已调用方法“cond.wait()”。应改用方法“cond.await()”。