- 博客(3)
- 收藏
- 关注
原创 CountDownLatch源码分析
CountDownLatch源码分析简介CountDownLatch,我们称之为闭锁或倒计时器,它允许一个或多个线程必须等待其他线程全部执行完之后才能执行。例如:部门周会,必须等所有人到齐才能开。其本身是基于AQS的共享模式实现,示例图如下:方法摘要metheddescriptionpublic void countDown()在许可可用之前阻塞当前线程。public void await() throws InterruptedException阻塞式地等待,
2021-04-01 15:11:15 100
原创 LockSupport源码分析
LockSupport源码分析LockSupport 简介LockSupport是用来创建锁和其他同步类的基本线程阻塞原语。LockSupport 提供park()和unpark()方法实现阻塞线程和解除线程阻塞,LockSupport和每个使用它的线程都与一个许可(permit)关联-----类似于一个二元信号量(只有1个许可证可供使用方法摘要metheddescriptionpark()在许可可用之前阻塞当前线程。park(Object blocker)在许可
2021-03-31 09:41:16 190 1
原创 AbstractQueuedSynchronizer源码分析
AbstractQueuedSynchronizer源码分析前言自旋锁多线程场景下,当一个线程尝试获取锁时,如果锁被占用,就在当前线程循环检查锁是否被释放,此时当前线程并没有休眠或挂起。代码实现public class SpinLock { /** * AtomicReference保证了操作的原子性 */ private AtomicReference<Thread> owner = new AtomicReference<>()
2021-03-31 09:37:01 135
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人