并发编程(JMM+AQS+Synchronized+hashMap)

并发编程的流程图
1.Lock和Synchronized关键字的区别:
并发编程(JMM+AQS+Synchronized+hashMap)
2.并发编程(JMM+AQS+Synchronized+hashMap)
线程与线程之间是不能直接同步变量。
并发编程(JMM+AQS+Synchronized+hashMap)
并发编程(JMM+AQS+Synchronized+hashMap)
下面是volatile底层操作。
并发编程(JMM+AQS+Synchronized+hashMap)
并发编程(JMM+AQS+Synchronized+hashMap)
并发编程(JMM+AQS+Synchronized+hashMap)

AQS是AbustractQueuedSynchronizer的简称

  • synchronized(基于JVM底层,基于C++,底层行为不可控 )
  • AQS不利用任何jvm内置锁,基于java可变行为去实现同步
    AQS的三板斧:CAS,自旋,LockSupportparkunpark
    悲观锁:关键字synchronized,接口Lock的实现类。
    乐观锁:CAS算法,例如AtomicInteger类的原子自增就是通过CAS自旋实现