自定义博客皮肤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)
  • 收藏
  • 关注

原创 AQS的具体实现二:CountDownLatch与CyclicBarrier的具体实现

AQS的具体实现二: 一、简介 ​ CountDownLatch(线程计数器)与CyclicBarrier(可重复使用的栅栏),线程计数器和循环栅栏是两个用来进行同步的类,都是通过await方法来进行线程的阻塞,当执行线程数达到具体的数量时才会执行释放阻塞队列的方法,都是依赖于AbstractQueuedSynchronizer框架进行实现,存在于java.util.concurrent包下。 二、区别 ​ 1、但CountDownLatch内部Sync通过实现AbstractQueuedSynchroni

2020-12-13 21:20:56 142

原创 AQS的具体实现一:ReentrantLock

AQS的具体实现一:ReentrantLock ​ AQS的实现有多种形式,包括ReentrantLock、CountDownLatch、CyclicBarrier、ReentrantLock、Semaphore和ThreadPoolExecutor。ReentrantLock 可重入的独占锁:可重入指同一线程可以多次进入此锁,独占表示同一时刻只能够有一个线程持有该锁。其实现方式又有两种,分为公平和非公平锁。 ​ 非公平和公平锁:如下图,我们能看到其内部有两个实现类,公平锁与非公平锁。 [外链图片转存失败,

2020-12-13 21:17:50 394

原创 AQS抽象队列同步框架

AQS 一、AQS抽象队列同步框架:java中实现锁机制的形式有两种,一种是通过syschronized关键字来实现,另外一种既是通过抽象线程同步框架来实现。syschronized通过修改字节码加入监视器类来实现最终会调用cpu的锁来实现。而AQS是通过双向队列+volatile关键字来实现,相对syschronized其免去了字节码层面的修改,不用调用cpu的锁来实现,加锁释放锁更加的快捷,避免调用cpu锁导致的资源浪费。 二、原理 ​ 1.属性 //共享锁标志 static final Node

2020-12-02 19:42:47 105

空空如也

空空如也

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

TA关注的人

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