基础知识 __基础知识之一:锁的类型__ __ 锁就那么几个,只是根据特性,分为不同的类型 __ 锁的概念 锁的三个概念 类型一:公平锁/非公平锁 公平锁:ReentrantLock(构造为公平) 非公平锁:Synchronized,ReentrantLock(构造为非公平) 类型二:乐观锁/悲观锁 ...
分类:
编程语言 时间:
2020-01-28 21:09:10
阅读次数:
82
锁类型 锁根据其特性能够划分出各种各样的锁类型,该文主要介绍以下锁的作用及特性 1. 乐观锁/悲观锁 2. 独享锁/共享锁 3. 互斥锁/读写锁 4. 可重入锁 5. 公平锁/非公平锁 6. 分段锁 7. 偏向锁/轻量级锁/重量级锁 8. 自旋锁 乐观锁/悲观锁 乐观锁与悲观锁并不是特指某两种类型的 ...
分类:
编程语言 时间:
2020-01-24 17:17:42
阅读次数:
96
浅析JDK1.8 ReentrantLock源码。 写在开篇 ReentrantLock–重入锁,是实现Lock接口的一个同步组件。这篇文章建立在熟悉AQS源码的基础上,同时主要从两个方面来分析ReentrantLock: 重入性的实现原理 公平锁和非公平锁 类的继承关系 ReentrantLock ...
分类:
其他好文 时间:
2020-01-23 21:13:45
阅读次数:
74
概述 ReentrantLock是一个可重入的互斥锁,也被称为独占锁。它支持公平锁和非公平锁两种模式。 ReentrantLock的使用方法 下面看一个最初级的例子: 在进入方法后,在需要加锁的一些操作执行之前需要调用lock方法,在jdk文档中对lock方法详细解释如下: 获得锁。 如果锁没有被另 ...
分类:
其他好文 时间:
2020-01-17 18:47:35
阅读次数:
67
介绍 j.u.c包中的 定义了锁的行为。 而 是并发包下提供的一个锁的实现,它是一个可重入的、排他的锁。 有的属性也很简单,除了一个 外,只有一个 。 可以分为公平锁和非公平锁两种。可以在创建时,通过向构造函数传入 参数指定: 无参的构造函数默认会创建一个非公平锁。公平锁和非公平锁的主要区别是:公平 ...
分类:
其他好文 时间:
2020-01-15 13:24:52
阅读次数:
59
公平锁和非公平锁 1.公平锁,是指多个线程按照申请的顺序来获取锁,类似排队打饭,先来后到。 2.非公平锁,是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程 比先申请的线程优先获取锁,在高并发情况下,有可能会造成优先级反转或者饥饿现象。 Java ReentrantLock而言,通过 ...
分类:
编程语言 时间:
2020-01-01 22:10:35
阅读次数:
86
JVM,并发,锁相关: 1.请你谈谈对volatile的理解,volatile是否存在伪共享问题。 2.cas你知道吗? 3.原子类AtomicInteger的ABA问题谈谈?原子更新引用知道吗? 4.公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁。 5.CountDown ...
分类:
编程语言 时间:
2019-12-31 18:57:50
阅读次数:
86
前言 ReentrantLock即可重入锁,实现了Lock和Serializable接口 在java环境下ReentrantLock和Synchronized都是可重入锁 ReentrantLock构造函数中提供两种锁:创建公平锁和非公平锁(默认) ReentrantLock有三个内部类 Sync、 ...
分类:
其他好文 时间:
2019-12-30 14:42:02
阅读次数:
84
一、公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁 1. 公平锁和非公平锁: 1.1 是什么? 公平锁:是指多个线程按照申请锁的顺序来获取锁,类似排队打饭,先来后到。 非公平锁:是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获得锁;在高 ...
分类:
编程语言 时间:
2019-12-30 09:54:13
阅读次数:
91
在使用ReentrantLock创建锁实例时,即可以创建公平锁,也可以创建非公平锁.默认是创建非公平锁. Lock lock = new ReentrantLock(true); // 创建一个公平锁 无论是创建公平锁,还是创建非公平锁,其底层都是使用AQS来实现的, 唯一的不同,就是非公平在加入C ...
分类:
其他好文 时间:
2019-12-22 00:58:11
阅读次数:
123