jdk1.8中JUC包下CountDownLatch存在内存泄露问题吗?
CountDownLatch实现原理
CountDownLatch是基于AQS模板框架实现的,内部Sync继承了AQS并重写了两个共享获取同步状态和共享释放同步状态的方法:
tryAcquireShared方法说明了获取同步状态的条件为同步状态为0;(CountDownLatch构造时需要传入一个大于等于0的同步状态初始值)
tryReleaseShared方法会使用CAS的方式对同步状态减1(同步状态大于1的情况下才减,为0则直接返回false)
protected int tryAcquireShared(int acquires) {
return (getState() == 0) ? 1 : -1;
}
protected boolean tryReleaseShared(int releases) {
// Decrement count; signal when transition to zero
for (;;) {
int c = getState()