![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发类
文章平均质量分 84
yaodaojun
这个作者很懒,什么都没留下…
展开
-
ReentrantLock笔记
构造方法生成公平与非公平锁public ReentrantLock(boolean fair) {sync = fair ? new FairSync() : new NonfairSync();}//上锁public void lock() {sync.lock();}先看公平锁final void lock() {acquire(1);}进入AbstractQueuedSynchronizer...原创 2018-03-03 16:56:03 · 225 阅读 · 0 评论 -
ReentrantReadWriteLock笔记
构造的时候public ReentrantReadWriteLock(boolean fair) {sync = fair ? new FairSync() : new NonfairSync();readerLock = new ReadLock(this);writerLock = new WriteLock(this);}调用读锁reentrantReadWriteLock.readLock...原创 2018-03-03 18:28:50 · 109 阅读 · 0 评论 -
Semaphore笔记
先看构造方法,这是一个非公平锁public Semaphore(int permits) {//这个值就是statesync = new NonfairSync(permits);}然后看开始调用了semaphore.acquire();进入public void acquire() throws InterruptedException {sync.acquireSharedInterrupti...原创 2018-03-03 19:40:48 · 168 阅读 · 0 评论 -
CountDownLatch笔记
进入构造方法public CountDownLatch(int count) {if (count < 0) throw new IllegalArgumentException("count < 0");//又是一个锁,又是state = newState也就count的值this.sync = new Sync(count);}先进入countDownLatch.await()看看...原创 2018-03-03 21:54:26 · 123 阅读 · 0 评论 -
CyclicBarrier笔记
CyclicBarrier可以添加执行完之后的流程还可以重复用CyclicBarrier(10,()->System.out.println("任务完成"))看构造方法public CyclicBarrier(int parties, Runnable barrierAction) { if (parties <= 0) throw new IllegalArgumentE...原创 2018-03-03 23:43:23 · 158 阅读 · 0 评论 -
AbstractQueuedSynchronizer的ConditionObject类
在CyclicBarrier里面就用到这个类这个this$0还带上了外部类的引用private final ReentrantLock lock = new ReentrantLock();/** Condition to wait on until tripped */private final Condition trip = lock.newCondition();在CyclicBarr...原创 2018-03-04 00:09:16 · 747 阅读 · 0 评论