JAVA的JUC包中的锁包括"独占锁"和"共享锁"。JUC中的共享锁有:CountDownLatch、CyclicBarrier、Semaphore、ReentrantReadWriteLock等。本章会以ReentrantReadWriteLock为蓝本对共享锁进行说明。一、ReentrantL....
分类:
其他好文 时间:
2016-01-06 23:43:08
阅读次数:
299
LockSupport类是Java6(JSR166-JUC)引入的一个类,提供了主要的线程同步原语。LockSupport实际上是调用了Unsafe类里的函数。归结到Unsafe里,仅仅有两个函数:[java]view plaincopypublicnativevoidunpark(Threadjt...
分类:
编程语言 时间:
2015-10-05 14:15:10
阅读次数:
1314
(新发现)利用J.U.C提供的原子类,实现单例模式...
分类:
编程语言 时间:
2015-08-20 16:52:06
阅读次数:
148
前一篇博客简单介绍了ReentrantLock的定义和与synchronized的区别,下面跟随LZ的笔记来扒扒ReentrantLock的lock方法。我们知道ReentrantLock有公平锁、非公平锁之分,所以lock()我也已公平锁、非公平锁来进行阐述。首先我们来看ReentrantLock的结构【图来自Java多线程系列–“JUC锁”03之 公平锁(一)】:从上图我们可以看到,Reent...
分类:
编程语言 时间:
2015-08-19 17:01:00
阅读次数:
180
lock详细解说请参考:Java多线程系列–“JUC锁”01之 框架lock接口
是同步代码块的另一种机制,比synchronized关键字更强大也更灵活
提供了许多新功能,例如:tryLock()方法,这个方法试图获取锁,如果锁已被其他线程获取,它将返回false并往下继续执行代码。而使用synchronized,如果线程A试图执行一个同步代码块,如果B线程已经在执行这个代码块了,线程A将被挂起。...
分类:
编程语言 时间:
2015-08-09 17:10:22
阅读次数:
185
1.使用wait(),notify(),waitAll(),notifyAll()2.使用JUC下面的Lock,ReentranetLock,Condition3.使用LinkedBlockingQueue4.个人感觉还可以使用信号量实现(伸手党,有点懒)原出处:http://blog.csdn.n...
分类:
编程语言 时间:
2015-08-07 18:47:02
阅读次数:
212
CountDownLatch 是能使一组线程等另一组线程都跑完了再继续跑;CyclicBarrier 能够使一组线程在一个时间点上达到同步,可以是一起开始执行全部任务或者一部分任务。这次说一下 JUC 中的同步器三个主要的成员:CountDownLatch、CyclicBarrier 和 Semap...
分类:
编程语言 时间:
2015-07-18 18:18:01
阅读次数:
141
LockSupport类是Java6(JSR166-JUC)引入的一个类,提供了基本的线程同步原语。LockSupport实际上是调用了Unsafe类里的函数,归结到Unsafe里,只有两个函数:park:阻塞当前线程(Blockcurrentthread),字面理解park,就算占住,停车的时候不...
分类:
编程语言 时间:
2015-07-17 11:16:32
阅读次数:
201
多线程: http://www.cnblogs.com/skywang12345/p/java_threads_category.html juc: http://www.blogjava.net/xylz/archive/2010/07/08/325587.html...
分类:
编程语言 时间:
2015-06-24 14:50:01
阅读次数:
225
这个类的代码除去注释差不多有千多行,要想把所有代码都读完,然后按照作者的思路给理解完,是不容易的.这里我仔仔细细读了差不多一半的代码,说难倒不是很难.虽然没有完全看完,但是基本上理解了作者代码的意图..说得简单些,就是操作一个双向链表.而链表中的每个节点有多种状态.AQS就是要保证整个双向链表和节点的状态的正确性.连续看了好几天的JUC相关的源码,现在脑袋真有点晕乎乎的....
分类:
其他好文 时间:
2015-06-06 23:34:32
阅读次数:
190