【每日阅读】2021年3月5日-经典同步代码块

// 推荐使用循环模式
while (检测到condition不满足) {
    调用wait等待条件满足
}

// 不推荐使用if模式
if (检测到condition不满足) {
    调用wait等待条件满足
}

不推荐使用if模式是因为在多核CPU的系统中,线程等待存在一种可能,就是在没有任何线程广播或者发出信号的情况下,线程就被唤醒,如果处理不当就可能出现诡异的并发问题。所以推荐使用循环模式,这样线程被唤醒后会再次判断条件是否满足,防止意外被唤醒而出现问题。

原创文章,作者:geekgao,如若转载,请注明出处:https://www.geekgao.cn/archives/2859

(2)
上一篇 2021年3月4日 上午8:05
下一篇 2021年3月7日 下午2:29

相关推荐

发表评论

您的电子邮箱地址不会被公开。

评论列表(1条)

  • wuaoya
    wuaoya 2021年9月11日 下午2:15

    博主,这个if再多核心cpu下具体是什么问题,能介绍下吗

GitHub
分享本页
返回顶部