![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 84
鱼乐呀
这个作者很懒,什么都没留下…
展开
-
CountDownLatch源码分析
CountDownLatch源码分析简介CountDownLatch,我们称之为闭锁或倒计时器,它允许一个或多个线程必须等待其他线程全部执行完之后才能执行。例如:部门周会,必须等所有人到齐才能开。其本身是基于AQS的共享模式实现,示例图如下:方法摘要metheddescriptionpublic void countDown()在许可可用之前阻塞当前线程。public void await() throws InterruptedException阻塞式地等待,原创 2021-04-01 15:11:15 · 78 阅读 · 0 评论 -
LockSupport源码分析
LockSupport源码分析LockSupport 简介LockSupport是用来创建锁和其他同步类的基本线程阻塞原语。LockSupport 提供park()和unpark()方法实现阻塞线程和解除线程阻塞,LockSupport和每个使用它的线程都与一个许可(permit)关联-----类似于一个二元信号量(只有1个许可证可供使用方法摘要metheddescriptionpark()在许可可用之前阻塞当前线程。park(Object blocker)在许可原创 2021-03-31 09:41:16 · 150 阅读 · 1 评论 -
AbstractQueuedSynchronizer源码分析
AbstractQueuedSynchronizer源码分析前言自旋锁多线程场景下,当一个线程尝试获取锁时,如果锁被占用,就在当前线程循环检查锁是否被释放,此时当前线程并没有休眠或挂起。代码实现public class SpinLock { /** * AtomicReference保证了操作的原子性 */ private AtomicReference<Thread> owner = new AtomicReference<>()原创 2021-03-31 09:37:01 · 116 阅读 · 0 评论