1. 这个也是一个同步的线程工具类
    Semaphore_前端
    Semaphore_前端_02

看得出来,这里有实现公平锁和非公平锁内部使用的队列,这个抽象的队列使用的很广泛啊!
2. 我看看我这个书上说的东西
Semaphore_工具类_03

这里和释放锁和得到锁关系很密切啊。

    public void release() {
        sync.releaseShared(1);
    }
public void acquire() throws InterruptedException {
        sync.acquireSharedInterruptibly(1);
    }

内部的实现的机制是一样的,只是我们的看法不一样而已。这里很刚才的CountDownLath的实现原理十一样。