// 推荐使用循环模式 while (检测到condition不满足) { 调用wait等待条件满足 } // 不推荐使用if模式 if (检测到condition不满足) { 调用wait等待条件满足 }
不推荐使用if模式是因为在多核CPU的系统中,线程等待存在一种可能,就是在没有任何线程广播或者发出信号的情况下,线程就被唤醒,如果处理不当就可能出现诡异的并发问题。所以推荐使用循环模式,这样线程被唤醒后会再次判断条件是否满足,防止意外被唤醒而出现问题。
原创文章,作者:geekgao,如若转载,请注明出处:https://www.geekgao.cn/archives/2859
评论列表(1条)
博主,这个if再多核心cpu下具体是什么问题,能介绍下吗