volatile随笔见解

1、volatile可以保证可见性,不能保证一致性,但是与cas操作结合在实现并发上性能很不错,java并发包下不少类都有这种实现方式。

2、相比synchronized执行成本更低,因为它不会引起线程上下文的切换和调度。

3、volatile实现可见性原理:

声明为volatile后,编译成汇编指令时,增加lock指令,那么cpu对于lock前缀的指令会增加两项操作:将当前处理器缓存行的数据会回写到系统内存;这个回写操作会引起其他cpu缓存了内存地址到数据无效,重新读取系统内存数据。

猜你喜欢

转载自www.cnblogs.com/bluej/p/9370769.html