一、juc-locks框架整体分析
早期的JDK版本中,仅仅提供了synchronizd、wait、notify等等比较底层的多线程同步工具,开发人员如果需要开发复杂的多线程应用,通常需要基于JDK提供的这些基础工具进行封装,开发自己的工具类。
JDK1.5之后,Doug Lea设计了JUC并发包,其中java.util.concurrent.locks包下提供了一系列基础的锁工具,用以对synchronizd、wait、notify等进行补充、增强。
java.util.concurrent.locks包的结构如下:
接口和类的简单UML图如下:
二、juc-locks框架详细分析
1、Condition接口
Condition接口,可以看做是Obejct类的wait()、notify()、notifyAll()方法的替代品,与Lock配合使用。可以通过await(),signal()来休眠/唤醒线程。