![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
juc
小杰011
这个作者很懒,什么都没留下…
展开
-
AQS源码探究
aqs 此时main函数有a,b两个线程 public class AQSDemo { public static void main(String[] args) { ReentrantLock lock = new ReentrantLock(); new Thread(()->{ lock.lock(); try { System.out.println("-----A t原创 2021-05-02 09:30:09 · 100 阅读 · 0 评论 -
阻塞队列的生产者消费者
阻塞队列的生产者消费者 利用atomicInteger,阻塞队列来完成 package com.xiaojie.jiehe.my; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; /** *原创 2021-04-22 20:36:34 · 63 阅读 · 0 评论 -
CountDownLatch,CyclicBarrier,Semaphore
CountDownLatch countDownLatch这个类是通过一个计数器来实现的,计数器的初始值是线程的数量。当一个线程执行完毕后,计数器减一,当计数器的值为0时,表示所有线程都执行完毕,然后在等待的线程就可以恢复工作了 package com.xiaojie.readwrite.ReadWriteLock; import jdk.nashorn.internal.objects.annotations.Getter; import java.util.concurrent.CountDow原创 2021-04-21 19:51:02 · 70 阅读 · 0 评论 -
手写自旋锁
手写自旋锁 需要AtomicReference类的cas操作 加锁方法cas占用则循环,没有就拿到 解锁直接置为null就行 具体代码有注释 package com.xiaojie.haha; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; /** * 实现自旋锁 */ public class SpinLock { AtomicReference<T原创 2021-04-20 20:25:01 · 100 阅读 · 0 评论