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

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

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

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

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

(4)
geekgaogeekgao博主
上一篇 2021年3月4日
下一篇 2021年3月7日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

评论列表(1条)

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

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

GitHub
分享本页
返回顶部

Warning: error_log(/usr/local/lighthouse/softwares/wordpress/wp-content/plugins/spider-analyser/#log/log-2118.txt): failed to open stream: No such file or directory in /usr/local/lighthouse/softwares/wordpress/wp-content/plugins/spider-analyser/spider.class.php on line 2900