【发布时间】:2011-03-09 03:18:29
【问题描述】:
当您遇到线程 A 读取某个全局变量而线程 B 写入同一个变量的情况时,现在除非读/写在单个内核上不是原子的,您可以在不同步的情况下执行此操作,但是在运行时会发生什么多核机器?
【问题讨论】:
-
“除非读/写在单核上不是原子的,否则无需同步就可以做到”是什么意思?三重否定让我大吃一惊。是否应该是“虽然读/写不是原子的,但在单个核心上你可以在不同步的情况下做到这一点”? (这是错误的,顺便说一句)你能澄清你的意思吗?
-
"除非读/写不是原子的" -> "如果读/写是原子的"。
-
@jalf:我的意思是,如果操作是原子的,您可以在单个核心上进行读取或写入,而无需使用同步。然而,根据下面给出的答案,这是一个糟糕的假设。
标签: c++ windows multithreading multicore