7.6.21.1 Volatile 1. 不能达到复合擦澡的原子性 2. 可以防止指令重排序 3. 为了减少内存操作速度远远优于CPU运行速度代理的CPU控制的影响,虚拟机会按照自己的规则吧程序编写的顺序打乱
7.6.21.2 Synchronized与volatile区别 1. Synchronized可以重入锁保证原子性、互斥性、可见性 2. Volatile可以做到可见性、性能高与synchronized(1.6之前),1.6优化后持平、不能做到符合操作的原子性。
7.6.21.3 Synchronized和lock的差异 1. Synchronized只有线程执行完或者发生异常时终止。过程中不可控。 2. Lock具有可控性。
7.6.21.4 Synchronized括号里面的内容应该是什么 锁定的是对象,决定锁的范围。
7.6.21.5 源代码编译顺序 编译器重排序 ----> 指令集的冲排序----> 内存系统的重排序
本文由博客一文多发平台 OpenWrite 发布!