Concurrent
文章平均质量分 82
rxin2009
这个作者很懒,什么都没留下…
展开
-
理解ReentrantLock
本文的主要内容是理解ReentrantLock源码。 先来看一段代码 public Object take() throws InterruptedException { lock.lock(); try { while (count == 0){ System.out.println("empty,wait with puting...."); notEmpty...原创 2012-11-05 13:54:41 · 75 阅读 · 0 评论 -
理解ReentrantReadWriteLock
本文主要内容是对并发包中的读写锁的认识,主要解释读写锁的请求过程,锁降级的实现以及锁升级的不可能性。 首先来了解一些常量和简单方法,贴下代码 static final int SHARED_SHIFT = 16; static final int SHARED_UNIT = (1 << SHARED_SHIFT); static final int MAX...原创 2012-11-07 15:32:47 · 73 阅读 · 0 评论 -
CountDownLatch、Semaphore、FutureTask源码解析
本文的主要内容是认识CountDownLatch、Semaphore、FutureTask的源码,这三个类在AQS中都用的是共享模式的,而且是可中断的,不同的是各自的请求锁和释放锁的操作,先说他们的不同点,在来说相同点。 首先看看CountDownLatch(闭锁),这个类在构建的时候初始一个阀值N,每调用一次countDown()后,N将减一直到为0时,线程才可以通过,下面来看看请求锁的...原创 2012-11-08 17:05:47 · 91 阅读 · 0 评论 -
认识ArrayBlockingQueue、LinkedBlockingQueue、ConcurrentLinkedQueue
本文的主要内容是对jdk并发包中ArrayBlockingQueue、LinkedBlockingQueue、ConcurrentLinkedQueue类的代码解析,主要对比他们的不同。 前面两个类都是生产者消费者模型的实现,性能都不错,这毕竟都是大师的杰作。先来认识下ArrayBlockingQueue,这个类的内部数据结构是一个Object数组,通过ReentrantLock控制同步操...原创 2012-11-09 11:41:51 · 108 阅读 · 0 评论 -
原子类
本文主要介绍jdk中的原子类、ABA问题以及多个变量之间的安全访问。 原子类中核心的一个语法就是CAS操作,而这个操作封装在Unsafe类中,典型的应用如下代码 // setup to use Unsafe.compareAndSwapInt for updates private static final Unsafe unsafe = Unsafe.getU...原创 2013-01-06 10:12:44 · 90 阅读 · 0 评论