并发
文章平均质量分 94
春天的早晨
https://github.com/Allenmcc
展开
-
SynchronousQueue实现原理
文章目录前言SynchronousQueue简单使用SynchronousQueue实现原理公平模式下的模型:非公平模式下的模型:总结前言SynchronousQueue是无界的,是一种无缓冲的等待队列,但是由于该Queue本身的特性,在某次添加元素后必须等待其他线程取走后才能继续添加;可以认为SynchronousQueue是一个缓存值为1的阻塞队列,但是 isEmpty()方法永远返回是true,remainingCapacity() 方法永远返回是0,remove()和removeAll() 方法转载 2021-07-11 21:34:25 · 394 阅读 · 0 评论 -
CountDownLatch的使用场景及原理
文章目录CountDownLatch的两种使用场景场景1 让多个线程等待:模拟并发,让并发线程一起执行场景2 让单个线程等待:多个线程(任务)完成后,进行汇总合并CountDownLatch 工作原理CountDownLatch与Thread.joinCountDownLatch与CyclicBarrierCountDownLatch的两种使用场景先来看看 CountDownLatch 的源码注释;/** * A synchronization aid that allows one or more转载 2021-05-03 20:47:49 · 1039 阅读 · 0 评论 -
Java并发之AQS详解
文章目录一、概述二、框架三、源码详解3.0 结点状态waitStatus3.1 acquire(int)3.1.1 tryAcquire(int)3.1.2 addWaiter(Node)3.1.2.1 enq(Node)3.1.3 acquireQueued(Node, int)3.1.3.1 shouldParkAfterFailedAcquire(Node, Node)3.1.3.2 parkAndCheckInterrupt()3.1.3.3 小结3.1.4 小结3.2 release(int)3.转载 2021-05-04 10:40:41 · 84 阅读 · 0 评论