采用 ReentrantLock 的 Condition 实现,如下:
/** Condition for waiting takes */private final Condition notEmpty;/** Condition for waiting puts */private final Condition notFull;
会有两个 Condition 用来标识条件,作用就是阻塞。
(基本常见的 queue 都采用这种实现)
强引用(Strong Reference)
软引用(Soft Reference)
弱引用(Weak Reference)
虚引用(Phantom Reference)