AQS

ReentrantLock内部包含了一个AQS对象,也就是AbstractQueuedSynchronizer类型的对象。这个AQS对象就是ReentrantLock可以实现加锁和释放锁的关键性的核心组件。

AQS_第1张图片

 

 

线程A,B尝试进行加锁的过程:

 

AQS_第2张图片

 

 

 

 

CountDownLatch应用场景:线程协调使用的时减法操作,用于并行计算的时候,如果某一个处理过程运算量特别大,可以将这个任务拆分成很多个小的子任务,等待所有子任务计算完,父任务再拿到所有子任务进行汇总,降低处理时间。

 CyclicBarrier应用场景:线程协调使用的时加法操作,有针对出现异常的reset方法,用于统计一年的excel数据,可以开多个线程统计每一页的数据,然后再进行汇总

 

 

你可能感兴趣的:(AQS)