在锁定之前/中/之后分配的变量始终对其他线程以相同顺序可见?

问题描述

a = 1;

lock;
b = 2;
unlock;

c = 3;

其他线程总是按照分配的顺序看到 a b c ?如果不是,真正的行为是什么? lock 做任何事情会改变它附近的内存模型吗?

当其他线程看到 a(b,c) 更新时无关紧要,只关心其他线程可以看到 a(b,c) 更新结果的顺序。

这道题可以分为两部分,可以赋值给a(b)混合,或者赋值给b(c)混合。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)