java-并发解决方案

并发产生数据不一致的原因:

        1.程序共享对象;

        2.多线程。

        3.基于1和2,取出来的数据可能不是最新的。

java并发同步解决方案(java并发底层实现的两项技术):

        加锁。   用来,保证原子性(线程某块代码独占cpu)+ 可见性(volatile),就不会出现问题。

锁的实现原理:

        1.Synchonized。   (JVM实现,内部实现不透明)

        2.Lock。  (aqs--AbstractQueueSynchronizer:抽象队列同步器,  基于循环case。  自旋cas保证原子性,volatile保证内存可见性)

原文地址:https://www.cnblogs.com/DengGao/p/5442705.html