在多线程对同一个函数进行调用时,如果不控制号锁的机制,往往就会产生数据混乱的情况,我们通常在控制线程的同步问题时,通常采用的方法:
1:使用synchronized进行控制访问。
2:使用ReentrantLock,进行上锁,方法体结束时进行解锁,因此得到控制。
下面我分别通过一个实例,来详细说明一下,上锁的方法,如果去掉锁机制之后,你会发现数据会出现混乱的情况。import java.ut...
分类:
编程语言 时间:
2014-09-14 10:09:26
阅读次数:
252
jdk并发包ReentrantLock 源码导读及使用实例...
分类:
其他好文 时间:
2014-09-10 23:56:41
阅读次数:
565
public class LockTest { /** * @param args */ public static void main(String[] args) { new LockTest().init(); } private void init(){ final Outputer out...
分类:
编程语言 时间:
2014-09-05 09:50:01
阅读次数:
251
importjava.util.concurrent.locks.Condition;
importjava.util.concurrent.locks.Lock;
importjava.util.concurrent.locks.ReentrantLock;
publicclassLockAndUnlockDemo{
publicstaticvoidmain(String[]args){
Clerk2c=newClerk2();
Threadt=newThread(newProducer2(c));
..
分类:
编程语言 时间:
2014-09-01 02:48:53
阅读次数:
256
import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class sequence { private static final long ONE_STEP =...
分类:
数据库 时间:
2014-08-30 11:04:09
阅读次数:
359
Java在一开始就提供了synchronized关键字,用于多线程之间的同步。它使用简便,不会出现拿锁之后不归还的情况,可以避免一些编程错误。而jdk5时提供的concurrent包里,有一个Lock接口以及它的实现类:ReentrantLock。这个类提供了更灵活的控制以及更强大的功能。如果单从性...
分类:
其他好文 时间:
2014-08-29 18:11:38
阅读次数:
251
ConcurrentHashMap的整个结构是一个Segment数组,每个数组由单独的一个锁组成,Segment继承了ReentrantLock。然后每个Segment中的结构又是类似于HashTable,也就是又是一个数组,数组的元素类型是HashEntry,每个形成一个桶。要找每个元素的时候,首...
分类:
编程语言 时间:
2014-08-26 00:17:15
阅读次数:
489
JAVA读写锁
显示锁
在java5.0之前,在协调共享对象访问时可以使用的机制只有synchronized和volatile。java5.0增加了一种新的机制:ReentrantLock。ReentrantLock并不是一种替代内置锁的方法,而是当内置锁不适用时,作为一种可选择的高级功能。与内置锁不同的是Lock提供了一个无条件的、可轮询的、定时的以及可中断的锁获取操作,所有加锁和解锁都是显...
分类:
编程语言 时间:
2014-08-16 19:50:31
阅读次数:
399
1、高级同步机制 使用synchronized关键词的问题在于加锁范围是固定的,无法把锁在对象之间进行传递,使用起来不灵活,但是也不容易出错。 (1)tryLock (2)ReadWriteLock (3)ReentrantLock 2、底层同步器 3、...
分类:
编程语言 时间:
2014-08-05 09:44:59
阅读次数:
246
在编码的过程中,有时候我们不得不借助锁同步来保证线程安全。synchronized关键字在上一篇博客中已经介绍;自从JDK5开始,添加了另一种锁机制:ReentrantLock。
二者的区别
1、lock是jdk5之后代码层面实现的,synchronized是JVM层面实现的。
2、synchronized在出现异常的时候能够自动释放锁,而lock必须在finally块中unlock()主动...
分类:
编程语言 时间:
2014-08-01 00:02:20
阅读次数:
319