【发布时间】:2015-12-06 20:37:40
【问题描述】:
我一直在阅读一本关于 C++ 中的多线程的书,但我对线程间这个术语的实际含义感到非常困惑。起初我以为它是用来描述线程之间的通信的。但是随着这本书越来越深入,它开始更松散地使用这个术语,以至于我不再明白它的含义。以这个短段为例
“线程间happens-before还结合了sequenced-before关系:如果操作A在操作B之前排序,并且操作B在线程间发生在操作C之前,那么A在线程间发生在C之前。类似地,如果 A 同步 - 与 B 并且 B 在 C 之前排序,则 A 线程间发生在 C 之前。这两者一起意味着如果您在单个线程中对数据进行一系列更改,则只需一个同步 -关系,以便数据对执行 C 的线程上的后续操作可见。” 空
读完那段后,我正式迷路了。而这本书,一直非常擅长解释新术语,完全忘记了这一点。这让我觉得这是一个不需要解释的常用术语,这使得提出这个问题变得更加困难。那么有人可以花时间解释这个术语的实际含义吗?
【问题讨论】:
-
这需要一点关于 happens-before 关系的理论,在试图理解这段话之前你读过一些相关的东西吗?
标签: c++ multithreading sequential