关于memory order,我仔细读了一个系列,具体链接忘了...但是基本来说,有两层乱序
1. 编译成汇编时,compiler会把原代码乱序
2. 汇编代码固定不变的情况下,cpu会把汇编代码乱序
所以比mutex再放松一些的同步机制就是memory fence,能从代码级别限制以上两层乱序
所以还是要信memory order这个东西
【 在 allegro 的大作中提到: 】
: 我不信就分了两个函数,编译器就蠢到优化成只读。这就是未定义形为,编译器想怎么实现就怎么实现。
:
: 不开-O2不会挂住,加上volatile不会挂住,加上fence也不会挂住
--
FROM 122.224.174.*