在x86架构上,c-bool的读写操作能否构成非原子性长尾词?

2026-04-16 22:115阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计304个文字,预计阅读时间需要2分钟。

在x86架构上,c-bool的读写操作能否构成非原子性长尾词?

参与英文问答,探讨以下问题:

1.Why is integer assignment on a naturally aligned variable atomic on x86?

2.Can modern x86 hardware not store a single byte to memory?

3.假设我们有两个线程,一个在循环中读取bool变量,另一个可以特设读取该变量。

参见英文答案 > 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%肯定.

在x86架构上,c-bool的读写操作能否构成非原子性长尾词?

那么是或否?

编辑:

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

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

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

本文共计304个文字,预计阅读时间需要2分钟。

在x86架构上,c-bool的读写操作能否构成非原子性长尾词?

参与英文问答,探讨以下问题:

1.Why is integer assignment on a naturally aligned variable atomic on x86?

2.Can modern x86 hardware not store a single byte to memory?

3.假设我们有两个线程,一个在循环中读取bool变量,另一个可以特设读取该变量。

参见英文答案 > 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%肯定.

在x86架构上,c-bool的读写操作能否构成非原子性长尾词?

那么是或否?

编辑:

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

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

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