ReentrantLock公平锁获取同步状态实现分析 lock()同步器依赖内部的同步队列来完成同步状态的管理,当前线程获取同步状态失败时,同步器会将当前线程以及等待状态等信息构造成一个节点并将其加入到同步队列,同时会阻塞当前线程,当同步线程释放时,会唤醒等待的节点,使其再次尝试获取同步状态。同步队列添加节点的过程如下图所示:具体代码如下:privat 2021-06-01 多线程
自定义实现互斥锁 我们用过ReentrantLock,想了解ReentrantLock如何实现的吗?如何自己实现自定义锁呢?在此之前我们先了解一些基本的知识。实现自定义锁,我们先要实现Lock接口LockLock接口提供的synchronized关键字不具备的主要特性:Lock是一个接口,它定义了锁获取和释放的基本操 2021-05-28 多线程
CountDownLatch与thread-join()的区别 今天学习CountDownLatch这个类,作用感觉和join很像,然后就百度了一下,看了他们之间的区别。所以在此记录一下。首先来看一下join,在当前线程中,如果调用某个thread的join方法,那么当前线程就会被阻塞,直到thread线程执行完毕,当前线程才能继续执行。join的原理是,不断的 2021-03-13 多线程