对于图一说明如下:为什么要约束到程序顺序?以下图程序为例,开发者原本期望通过 Flag1 和 Flag2 来控制两段程序中的临界代码最多只有一个可以执行,但是,如果处理器 / 编译器对执行的执行顺序进行了调度,使得 Flag1 和 Flag2 的执行被挪到了临界代码之后,那这样一来两段临界代码都会执行,从而违背了开发者的期望。
请问为什么在此代码中可以通过 Flag1 和 Flag2 来控制两段程序中的临界代码最多只有一个可以执行?
对图二问题如下:这个流程图应该如何理解,为什么在t1先进行Flag2的读取?
我是计算机架构新手,在研究储存一致性模型的时候对于这个点理解不到位。
文章和图片来自:https://blog.csdn.net/maokelong95/article/details/80727952#2__57