- 主题:多线程下赋值重排序问题
你变量初始化过程都是在局部变量中完成的话
对线程外完全不可见,还能有啥问题
可能被外部线程访问的类变量
赋值操作靠volatile
如果要在跨线程变量上直接操刀或者有CAS操作之类
用atomicReference保证时序
【 在 sjfdesolve 的大作中提到: 】
: ...
: 我说的就是多线程场景下
: A线程给对象里的域赋值
: ...................
--
修改:javafish FROM 58.218.213.*
FROM 58.218.213.*
Volatile是内存屏障,保证在读变量前,已经对要读的变量做了加载,没记错的话应该是storeload loadload的加载屏障
【 在 sjfdesolve 的大作中提到: 】
: 假设有一个类
: class Cat
: {
: ....................
- 来自「最水木 for iPhone 11」
--
FROM 115.194.171.*
volitate防止指令重排序,有内存屏障的功能。
--
FROM 39.144.43.*