Java锁之Lock框架概述

liang @ 2017年03月19日

在Java中关于锁有两个体系,一个是synchronized代表的对象监视器同步锁,一个是以AQS为基础的锁框架,该框架位于java.uti.concurrent包下。

本文基于JDK1.7.0_67

java version "1.7.0_67"_

_Java(TM) SE Runtime Environment (build 1.7.0_67-b01)

Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)

JUC包中的锁

相比同步锁,JUC包中的锁的功能更加强大,它为锁提供了一个框架,该框架允许更灵活地使用锁,只是它的用法更难罢了。

JUC包中的锁,包括:

  • Lock接口
  • ReadWriteLock 读写锁
  • Condition 条件变量
  • ReentrantLock 可重入锁
  • ReentrantReadWriteLock 可重入读写锁
  • CountDownLatch 计数器
  • CyclicBarrier 回环栅栏
  • Semaphore 信号量
  • AbstractOwnableSynchronizer抽象类
  • AbstractQueuedSynchronizer抽象类
  • AbstractQueuedLongSynchronizer抽象类