自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(3)
  • 收藏
  • 关注

原创 CountDownLatch源码分析

CountDownLatch源码分析 简介 CountDownLatch,我们称之为闭锁或倒计时器,它允许一个或多个线程必须等待其他线程全部执行完之后才能执行。例如:部门周会,必须等所有人到齐才能开。其本身是基于AQS的共享模式实现,示例图如下: 方法摘要 methed description public void countDown() 在许可可用之前阻塞当前线程。 public void await() throws InterruptedException 阻塞式地等待,

2021-04-01 15:11:15 71

原创 LockSupport源码分析

LockSupport源码分析 LockSupport 简介 LockSupport是用来创建锁和其他同步类的基本线程阻塞原语。LockSupport 提供park()和unpark()方法实现阻塞线程和解除线程阻塞,LockSupport和每个使用它的线程都与一个许可(permit)关联-----类似于一个二元信号量(只有1个许可证可供使用 方法摘要 methed description park() 在许可可用之前阻塞当前线程。 park(Object blocker) 在许可

2021-03-31 09:41:16 141 1

原创 AbstractQueuedSynchronizer源码分析

AbstractQueuedSynchronizer源码分析 前言 自旋锁 多线程场景下,当一个线程尝试获取锁时,如果锁被占用,就在当前线程循环检查锁是否被释放,此时当前线程并没有休眠或挂起。 代码实现 public class SpinLock { /** * AtomicReference保证了操作的原子性 */ private AtomicReference<Thread> owner = new AtomicReference<>()

2021-03-31 09:37:01 109

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除