一、概述
结构:
java.lang.Object
java.util.concurrent.locks.ReentrantLock
声明:public class ReentrantLock extends Object implements Lock, Serializable
一个可重入的互斥锁 Lock,它具有与使用 synchronized 方法和语句所访问的隐式监视器锁相...
分类:
编程语言 时间:
2015-01-07 16:54:42
阅读次数:
222
ReentrantLock的加锁方法Lock()提供了无条件地轮询获取锁的方式,lockInterruptibly()提供了可中断的锁获取方式。这两个方法的区别在哪里呢?通过分析源码可以知道lock方法默认处理了中断请求,一旦监测到中断状态,则中断当前线程;而lockInterruptibly()则直接抛出中断异常,由上层调用者区去处理中断。
1 lock操作
...
分类:
编程语言 时间:
2015-01-04 11:31:45
阅读次数:
174
1 锁的独占与共享
java并发包提供的加锁模式分为独占锁和共享锁,独占锁模式下,每次只能有一个线程能持有锁,ReentrantLock就是以独占方式实现的互斥锁。共享锁,则允许多个线程同时获取锁,并发访问 共享资源,如:ReadWriteLock。AQS的内部类Node定义了两个常量SHARED和EXCLUSIVE,他们分别标识 AQS队列中等待线程的锁获取模式。
很显...
分类:
编程语言 时间:
2014-12-31 14:40:25
阅读次数:
232
1关于可重入锁
ReentrantLock是基于AQS实现的可重入的同步工具类,它提供了两种同步器的实现即公平锁FairSync和非公平锁NonfairSync。它提供了一种无条件的、可轮询的、定时的以及可中断的锁获取操作,所有的加锁和解锁都是显式的。tryLock(),tryLock(long
,TimeUnit)分别提供了可轮询的、可定时的锁获取方式。 Lock()提供了无...
分类:
编程语言 时间:
2014-12-26 16:50:58
阅读次数:
283
原文:http://www.ibm.com/developerworks/cn/java/j-jtp10264/index.html多线程和并发性并不是什么新内容,但是 Java 语言设计中的创新之一就是,它是第一个直接把跨平台线程模型和正规的内存模型集成到语言中的主流语言。核心类库包含一个Thre...
分类:
编程语言 时间:
2014-12-23 16:55:27
阅读次数:
203
LRN全称为Local Response Normalization,即局部响应归一化层,具体实现在CAFFE_ROOT/src/caffe/layers/lrn_layer.cpp和同一目录下lrn_layer.cu中。
该层需要参数有:
norm_region: 选择对相邻通道间归一化还是通道内空间区域归一化,默认为ACROSS_CHANNELS,即通道间归一化;...
分类:
其他好文 时间:
2014-12-19 23:30:21
阅读次数:
583
importjava.util.concurrent.locks.Lock;importjava.util.concurrent.locks.ReentrantLock;publicclassSingleton4{ privateSingleton4(){}; privatestaticSingleton4single=null; privatestaticLocklock=newReentrantLock(); publicstaticSingleton4getInstance(){ if(single..
分类:
编程语言 时间:
2014-12-19 19:17:38
阅读次数:
197
在jdk1.5之前,多线程之间的同步是依靠synchronized来实现。synchronized是java的关键字,直接由jvm解释成为指令进行线程同步管理。因为操作简单,而且现在jdk的后续版本已经对synchronized进行了很多的优化,所以一直是大家编写多线程程序常用的同步工具。那为什么要推出新的同步api呢?jdk1.5发布的时候,synchronized性能并不好,这可能是concurrent包出现的一个潜在原因,但是更重要的是新的api提供了更灵活,更细粒度的同步操作,以满足不同的需求。但是...
分类:
其他好文 时间:
2014-12-11 22:30:54
阅读次数:
391
ReentrantLock默认使用非公平锁
public ReentrantLock() {
sync = new NonfairSync();
}
NonfairSync就是一个同步器
final static class NonfairSync extends Sync {
private static final long...
分类:
其他好文 时间:
2014-12-07 19:09:51
阅读次数:
255
看了篇文章,觉得分析得很透彻,其后总结的很到位,地址:http://www.iteye.com/topic/1083832把获取与释放操作串在一起在简单看一下:获取锁的时候将当前线程放入同步队列,并且将前一个节点的状态置为signal状态,然后阻塞当这个节点的前一个节点成功获取到锁,前一个节点就成了...
分类:
其他好文 时间:
2014-12-03 10:29:28
阅读次数:
195