加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – bool读/写操作可以在x86上不是原子操作吗?

发布时间:2020-12-16 09:14:09 所属栏目:百科 来源:网络整理
导读:参见英文答案 Why is integer assignment on a naturally aligned variable atomic on x86?????????????????????????????????????5个 ???????????? Can modern x86 hardware not store a single byte to memory?????????????????????????????????????6个 假
参见英文答案 > Why is integer assignment on a naturally aligned variable atomic on x86?????????????????????????????????????5个
>???????????? Can modern x86 hardware not store a single byte to memory?????????????????????????????????????6个
假设我们有两个线程,一个是在循环中读取bool而另一个可以在特定时间切换它.我个人认为这应该是原子的,因为C中的sizeof(bool)是1个字节而你不是部分读/写字节但我想100%肯定.

那么是或否?

编辑:

同样为了将来参考,同样适用于int?

解决方法

这完全取决于你对“原子”这个词的真正含义.

你的意思是“最终值将一次更新”(是的,在x86上,绝对保证一个字节值 – 以及任何正确对齐的值,至少64位),或“如果我将其设置为真(或在我设置之后,没有其他线程会读取不同的值“(这不是很确定 – 你需要一个”锁定“前缀来保证).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读