
AQS
striveb
趁年轻,多吃点苦吧
展开
-
AQS组件之CountDownLatch
GitHub:https://github.com/JDawnF一、CountDownLatch简介CountDownLatch是一个同步工具类,用来协调多个线程之间的同步。这个工具通常用来控制线程等待,它可以让某一个线程等待直到倒计时结束,再开始执行。通过一个计数来保证线程是否需要被阻塞。实现一个或多个线程等待其他线程执行的场景。我们定义一个CountDownLatch,通过...原创 2019-02-03 22:42:52 · 382 阅读 · 0 评论 -
什么是AQS及其原理
GitHub:https://github.com/JDawnF1、AQS简介AQS全名:AbstractQueuedSynchronizer,是并发容器J.U.C(java.lang.concurrent)下locks包内的一个类。它实现了一个FIFO(FirstIn、FisrtOut先进先出)的队列。底层实现的数据结构是一个双向链表。Sync queue:同步队列,是一个双向链...原创 2019-02-03 23:49:59 · 47738 阅读 · 7 评论 -
AQS组件之Semaphore
在前两篇说了AQS和CountDownLatch,现在我们来看看Semaphore。synchronized 和 ReentrantLock 都是一次只允许一个线程访问某个资源,Semaphore(信号量)可以指定多个线程同时访问某个资源。 用于保证同一时间并发访问线程的数目。信号量在操作系统中是很重要的概念,Java并发库里的Semaphore就可以很轻松的完成类似操作系统信号量的控制...原创 2019-02-05 22:20:24 · 235 阅读 · 0 评论 -
AQS组件之CyclicBarrier
前面已经介绍了AQS及其两个组件,接下来看看CyclicBarrier这个组件。一、简介CyclicBarrier是另一种多线程并发控制使用工具,和CountDownLatch非常类似,他也 可以实现线程间的计数等待,但他的功能要比CountDownLatch更加强大一些。CyclicBarrier 的字面意思是可循环使用(Cyclic)的屏障(Barrier)。它要做的事情 是,让一...原创 2019-02-06 17:59:58 · 674 阅读 · 0 评论 -
JUC之深入理解AQS
GitHub:https://github.com/JDawnF/learning_notejava.util.concurrent.locks.AbstractQueuedSynchronizer 抽象类,简称 AQS ,是一个用于构建锁和同步容器的同步器。事实上concurrent 包内许多类都是基于 AQS 构建。例如 ReentrantLock,Semaphore,CountDownL...原创 2019-03-19 11:07:48 · 847 阅读 · 0 评论