并发
文章平均质量分 93
Java并发相关
XH雪浪风尘
Java咸鱼
展开
-
countDownLatch、cyclicBarrier、semaphore使用详解
文章目录前言countDownLatchcyclicBarriersemaphore结尾 前言 在前面两篇中介绍了AQS的同步队列、条件队列的源码实现,这一篇则是来看一下JUC中主要的三个并发工具类:countDownLatch、cyclicBarrier、semaphore。本文不会像之前两篇文章那样从源码角度展开,而是结合工具的API,来看一下这些工具类的使用方法以及场景。 countDownLatch countDownLatch我们可以理解为是一个计数器,计数器的初始值是线程的可执行的次数(这个实际原创 2021-09-26 07:23:57 · 443 阅读 · 0 评论 -
AQS:条件队列的源码解读
前言 在上一篇中介绍了AQS中的同步队列:AQS:从原理到源码解读,条件队列相对于同步队列来说的话,内容并没有那么的多。因为在同步队列中是分了共享模式与独占模式,而在条件队列中,是没有共享模式的,条件队列中的节点都是独占式的,这一点会在接下来的源码中介绍到。 在开始条件队列的源码之前,我们以一段代码为例子: public static void main(String[] args) throws InterruptedException { ReentrantLock lock=new R原创 2021-08-30 22:19:16 · 232 阅读 · 0 评论 -
AQS:从原理到源码解读
目录 文章目录前言原理构造独占式获取锁释放锁共享式获取锁释放锁写在最后 前言 我们在使用ReentrantLock、CountDownLatch等并发相关的工具的时候,会发现它们都继承了一个类:AbstractQueuedSynchronizer,简称AQS,有人说他是并发的基石,也有一种说法是并发框架,但是不管哪种说法,都显示出了AQS的重要性,所以我们也有必要去了解一下AQS,本文只是我对于AQS的了解,如有不当之处,欢迎指出我及时修改。 在AQS中,核心方法是围绕独占式地获取、释放锁,共享式地获取、释原创 2021-08-13 07:52:40 · 231 阅读 · 0 评论