![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发
风间影月
这个作者很懒,什么都没留下…
展开
-
AQS——同步队列共享模式
共享模式下的acquireShared()和releaseShared()首先来看看acquireShared()代码,public final void acquireShared(int arg) { // 尝试获取资源如果成功直接返回 if (tryAcquireShared(arg) < 0) // 当前线程调用doA...原创 2018-07-30 11:08:30 · 535 阅读 · 1 评论 -
线程安全性以及Spring中@Controller、@Service的使用
线程安全性定义多个线程同时访问一个类,不论运行时环境怎样分配调度方法或者这些线程如何交替执行类中的方法,并且调用该类方法的多线程代码不进行同步或协同操作,在这种情况下,这个类表现出的行为都是正确一致的,则称这个线程是安全的。线程安全性体现的三个方面原子性提供互斥访问,即同一时刻只能由一个线程访问。 原子性的保障在java中的实现有两种方式:atomic包 优势:竞争激烈时...原创 2018-07-26 19:51:40 · 2134 阅读 · 0 评论 -
AQS——同步队列独享模式
AQS内部的队列AQS内部通过链表来维护了一个同步队列与等待队列,Node类代码如下:static final class Node { // 共享状态的节点 static final Node SHARED = new Node(); // 独占状态的节点 static final Node EXCLUSIVE = nul...原创 2018-07-29 13:14:56 · 424 阅读 · 0 评论 -
AQS——条件队列
条件队列的结构以及await()/signal()的使用等待队列由AQS内部的ConditionObject实现,它实现了Condition接口的方法await()/signal()等,ConditionObject内部维护了一个头节点和一个尾节点,利用AQS内部Node节点的nextWaiter实现了单向等待队列。条件队列的产生,是由于同步队列中获取到资源的节点由于某种条件被挂起从而加入...原创 2018-07-31 10:12:40 · 675 阅读 · 0 评论 -
Java并发编程之ReentrantLock
ReentrantLock使用及可重入性演示public static void main(String[] args) throws InterruptedException { ReentrantLock lock = new ReentrantLock(true); CountDownLatch countDown = new CountDownLatc...原创 2018-07-31 23:51:39 · 210 阅读 · 0 评论