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

        1.程序共享对象;

        2.多线程。

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

 

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

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

 

锁的实现原理:

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

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

 

相关文章:

  • 2022-02-10
  • 2021-08-07
  • 2021-11-29
  • 2021-09-09
  • 2021-06-30
猜你喜欢
  • 2021-11-28
  • 2021-12-09
  • 2021-08-02
  • 2021-09-27
相关资源
相似解决方案