本章对ReentrantLock包进行基本介绍,这一章主要对ReentrantLock进行概括性的介绍,内容包括:ReentrantLock介绍ReentrantLock函数列表ReentrantLock示例在后面的两章,会分别介绍ReentrantLock的两个子类(公平锁和非公平锁)的实现原理。
分类:
编程语言 时间:
2016-03-21 11:57:49
阅读次数:
178
性能是一个不断变化的指标,如果在昨天的测试基准中发现X比Y更快,那么在今天就可能已经过时了。在激烈竞争的情况下,在非公平锁的性能高于公平锁的性能的一个原因是:在恢复一个被挂起的线程与该线程真正开始运行之间存在着严重的延迟。假设线程A持有一个锁,并且线程B请求这个锁。由于这个锁已被线程A持有,因此B将...
分类:
其他好文 时间:
2015-10-23 21:25:31
阅读次数:
228
公平锁与非公平锁ReentrantLock有一个很大的特点,就是可以指定锁是公平锁还是非公平锁,公平锁表示线程获取锁的顺序是按照线程排队的顺序来分配的,而非公平锁就是一种获取锁的抢占机制,是随机获得锁的,先来的未必就一定能先得到锁,从这个角度讲,synchronized其实就是一种非公平锁。非公平锁...
分类:
编程语言 时间:
2015-10-05 13:00:07
阅读次数:
237
前一篇博客简单介绍了ReentrantLock的定义和与synchronized的区别,下面跟随LZ的笔记来扒扒ReentrantLock的lock方法。我们知道ReentrantLock有公平锁、非公平锁之分,所以lock()我也已公平锁、非公平锁来进行阐述。首先我们来看ReentrantLock的结构【图来自Java多线程系列–“JUC锁”03之 公平锁(一)】:从上图我们可以看到,Reent...
分类:
编程语言 时间:
2015-08-19 17:01:00
阅读次数:
180
概要接上一篇文章,练习修改锁的公平性,和在所中使用条件。修改锁的公平性ReentrantLock /**
*构造一个锁对象,默认为非公平锁
*/
public ReentrantLock(boolean fair) {
sync = fair ? new FairSync() : new NonfairSync();
}根据Reentrant...
分类:
编程语言 时间:
2015-08-11 23:26:52
阅读次数:
243
关于ReentrantLock:公平性ReentrantLock的构造器提供了两种公平性选择:创建非公平的锁(默认)或者一个公平锁。在利用ReentrantLock构造函数的时候,可以传递一个boolean,当不传入模式是false,即创建一个非公平锁,当传入true的时候,创建一个公平的锁。所谓的...
分类:
其他好文 时间:
2015-02-15 13:28:07
阅读次数:
173
1关于可重入锁
ReentrantLock是基于AQS实现的可重入的同步工具类,它提供了两种同步器的实现即公平锁FairSync和非公平锁NonfairSync。它提供了一种无条件的、可轮询的、定时的以及可中断的锁获取操作,所有的加锁和解锁都是显式的。tryLock(),tryLock(long
,TimeUnit)分别提供了可轮询的、可定时的锁获取方式。 Lock()提供了无...
分类:
编程语言 时间:
2014-12-26 16:50:58
阅读次数:
283
ReentrantLock默认使用非公平锁
public ReentrantLock() {
sync = new NonfairSync();
}
NonfairSync就是一个同步器
final static class NonfairSync extends Sync {
private static final long...
分类:
其他好文 时间:
2014-12-07 19:09:51
阅读次数:
255
在Java的ReentrantLock构造函数中提供了两种锁:创建公平锁和非公平锁(默认)。代码如下:
public ReentrantLock() {
sync = new NonfairSync();
}
在公平的锁上,线程按照他们发出请求的顺序获取锁,但在非公平锁上,则允许‘插队’:当一个线程请求非公平锁时,如果在发出请求的同时该锁变成可用状态,那么这个线程会跳过队列中所有的等待线程而获得锁。 非公平的Reentran...
分类:
其他好文 时间:
2014-11-23 16:00:32
阅读次数:
197
synchronized与lock 都是用来实现线程同步的锁,synchronized对象锁,lock是一个接口,她的实现有reentrantlock互斥锁以及ReentrantReadWriteLock共享锁。这里说明一下ReentrantReadWriteLock共享锁,所谓共享就是该锁提供读读...
分类:
其他好文 时间:
2014-10-10 19:16:04
阅读次数:
211