1,共享锁的调用框架和独占锁和实现原理非常相似,两者最大不同在于获取锁的逻辑——共享锁可以被多个线程同时持有,而独占锁同一时刻只能被一个线程持有。
2,由于共享锁同一时刻可以被多个线程持有,因此当头节点获取到共享锁时,可以立即唤醒后继节点来争锁,而不必等到释放锁的时候。因此,共享锁触发唤醒后继节点的行为可能有两处,一处在当前节点成功获得共享锁后,一处在当前节点释放共享锁后。
3,举例来说,countdownlatch的实现是共享模式,他允许一个或多个线程,等待count数量变为0后再继续执行,那么如果是多个线程,那么这多个线程就是共同的等待这一个临界资源变的可用。