锁
wj-1024
【日积跬步】
展开
-
【锁】死锁与定位分析
1.什么是死锁?两个或两个以上进程在执行过程中,因争夺资源而造成的一种相互等待的现象2.产生的原因系统资源不足进程运行推进的顺序不合适资源分配不得当3.举例Demo:/** * 死锁与定位分析 * * @author wangjie * @version V1.0 * @date 2019/12/27 */public class DeadlockDe...原创 2019-12-27 11:20:53 · 2340 阅读 · 0 评论 -
【锁】 synchronized与Lock的区别
1. 原始构成synchronized是关键字,属于JVM层面。Lock是具体类,是api层面。1.1 synchronized底层原理今天就用一个最简单的一个Demo来聊:/** * idea配置javap -c工具 * 右键查看字节码指令 * * @author wangjie * @version V1.0 * @date 2019/12/24 */pu...原创 2019-12-24 16:33:38 · 2398 阅读 · 0 评论 -
【锁】读写锁--ReentrantReadWriteLock源码分析
1.什么读写锁–ReentrantReadWriteLock?撸源码前,可先看:【锁】公平锁/非公平锁/可重入锁/递归锁/自旋锁/独占锁/共享锁/读写锁2.开撸2.1 类图先从类图开始,一步一步看。idea找到依赖的jdk下面rt.jar里面JUC包里面的ReentrantReadWriteLock右键如图:打开类图:我们可以看到ReentrantLock里面有一个Sync抽象...原创 2019-12-23 11:04:13 · 2376 阅读 · 0 评论 -
【JUC】CountDownLatch源码分析
1.什么是CountDownLatch之前写了一篇关于JUC包里关于并发编程工具类的笔记,但过后总感觉不太舒服,不通透,所以,这次就想着先把整个CountDownLatch源码撸一遍。至于CountDownLatch是什么,撸代码前,可先看:【JUC】CountDownLatch/CyclicBarrier/Semaphore2.开撸2.1 类图先从类图开始,一步一步看。idea找到...原创 2019-12-21 23:58:01 · 2415 阅读 · 0 评论 -
【锁】【JUC】可重入锁/AQS队列--ReentrantLock源码分析
1.重入锁/AQS队列之前有写过一篇关于锁的笔记:【锁】公平锁/非公平锁/可重入锁/递归锁/自旋锁/独占锁/共享锁/读写锁里面关于重入锁,特别AQS队列并没有提到,故借学习ReentrantLock源码几下这篇笔记。2. ReentrantLock源码分析2.1 类图今天啰嗦一些,我们一步一步看:idea找到依赖的jdk下面rt.jar里面JUC包里面的ReentrantLock右...原创 2019-12-20 23:29:37 · 2943 阅读 · 0 评论 -
【锁】自旋锁-MCS/CLH队列
1.自旋锁-MCS/CLH队列之前有写过一篇关于锁的笔记:【锁】公平锁/非公平锁/可重入锁/递归锁/自旋锁/独占锁/共享锁/读写锁里面关于自旋锁,特别CLH队列并没有提到,故此有了这篇笔记。2.自旋锁指尝试获取锁的线程不会立即阻塞,而是采用循环的方式去尝试获取锁,这样的好处是减少线程上线文切换的消耗,缺点是循环会消耗CPU2.1 CASJUC包里的AtomicInteger类底层用...原创 2019-12-20 21:00:25 · 2538 阅读 · 0 评论 -
【锁】公平锁/非公平锁/可重入锁/递归锁/自旋锁/独占锁/共享锁/读写锁
1,公平锁与非公平锁公平锁:指多个线程按照申请锁的顺序来获取锁类似排队打饭 先来后到非公平锁:指在多线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取到锁,在高并发的情况下,有可能造成优先级反转或者饥饿现象1.1 公平锁与非公平锁区别并发包ReentrantLock的创建可以指定构造函数的boolean类型来得到公平锁或者非公平锁,不填默认是非公平锁...原创 2019-12-18 15:09:46 · 2638 阅读 · 1 评论