水木社区手机版
首页
|版面-编程技术(Programming)|
新版wap站已上线
返回
1/1
|
转到
主题:乱序执行的CPU怎么处理多线程中,共享变量有前后依赖的问题的?
10楼
|
leving
|
2023-12-25 18:07:08
|
展开
底层是mesi外加上内存屏障可以保证。 mesi基本是cpu硬件层自带,软件层需要在引入store buffer和invlid queue后解决变量可见性,语言层封装就是类似cpp中的atomic操作。
【 在 wjhtingerx (ca6140) 的大作中提到: 】
: 比如:
: 线程1:
: b=2;
: a=1;
--
FROM 39.144.104.*
16楼
|
leving
|
2023-12-25 19:55:18
|
展开
java的volatile是标准的使用Release-Require实现的内存屏障。
【 在 beanspower (豆能) 的大作中提到: 】
:
: 【 在 wjhtingerx 的大作中提到: 】
: : 这里回答很多是错的,volatile只约束编译结果,跟CPU的乱序执行无关。
: :
--
FROM 39.144.104.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版