AQS(AbstractQueueSynchronizer)抽象队列同步器
维护了一个 int state(代表共享资源,volatile修饰)和一个 FIFO 线程等待队列(多线程争用资源被
阻塞时会进入此队列)
资源共享方式
- 独占--->ReentrantLock
- 共享--->Semaphore/CountDownLatch
- 独占+共享--->ReentrantReadWriteLock
CAS(Compare And Swap/Set)比较并交换-乐观锁机制-锁自旋
当且仅当内存值V等于预期值A,才会将内存值设置为新值N
- 锁自旋--->AtomicInteger.getAndIncrement
- ABA问题--->版本号解决
网友评论