1.单例模式Double check怎么写?
先判断一次空值
加了锁以后
再判断一次空值
2.单例模式是否需要volotile修饰,有什么作用?
需要,
作用有两个:
1.线程间可见
2.禁止指令重排序,当把volatile加在某个变量上的时候,这个变量的初始化过程不会被重排序。
这里引申一点 如果变量初始化过程指令重排序了,可能会导致变量计算结果与预期不符合。
jvm线程锁
最新推荐文章于 2022-10-03 17:01:49 发布
1.单例模式Double check怎么写?
先判断一次空值
加了锁以后
再判断一次空值
2.单例模式是否需要volotile修饰,有什么作用?
需要,
作用有两个:
1.线程间可见
2.禁止指令重排序,当把volatile加在某个变量上的时候,这个变量的初始化过程不会被重排序。
这里引申一点 如果变量初始化过程指令重排序了,可能会导致变量计算结果与预期不符合。