本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- xiangjie88
- zysnba
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- gengyun12
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- arpenker
- tanling8334
- gaojingsong
- kaizi1992
- xpenxpen
- 龙儿筝
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- lemonhandsome
- mengjichen
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- siemens800
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
最新文章列表
java并发编程--AbstractQueuedSynchronizer加锁和解锁分析(二)
在java.util.concurrent.locks包中有很多Lock的实现类,常用的有ReentrantLock、ReadWriteLock(实现类ReentrantReadWriteLock),其实现都依赖java.util.concurrent.AbstractQueuedSynchronizer类,实现思路都大同小异,因此我们以ReentrantLock作为讲解切入点。
1. R ...
Java.util.concurrent 源码解读(一)
前面已经可以了解到AQS的设计,接下看一下具体的使用和实现:
1、java.util.concurrent 的结构:
曾经有一张图可以十分清楚地展示java.util.concurrent的结构,我也借来用一下,有助于理清楚整个大的结构,接下去主要是对各个部分的具体实现进行分析,首先还是从锁说起;
2、lock部分实现的类图:
上图是整个AQS的类图,红色框类表示JD ...
JAVA.util.concurrent 同步框架(翻译四)
接上一篇:
http://caoyaojun1988-163-com.iteye.com/blog/1302936
5 性能
虽然除了互斥锁,同步框架也支持其他许多风格的同步;但是锁的性能是最容易比较和衡量的,即便如此,还有很多不同的测量方法。这里的实验旨在揭示开销和吞吐量。在每项测试中,每个线程多次更新一个伪随机数,计算使用函数:nextRandom(INT种子):
...
JAVA.util.concurrent 同步框架(翻译三)
接上一篇:
http://caoyaojun1988-163-com.iteye.com/blog/1290759
4、运用:
AbstractQueuedSynchronizer类将上述功能联系在一起,作为一个“模板方法模式[6]”中的模板类,作为其他同步器的基类。子类只是实现预定义方法,实现通过获取锁和释放锁的操作来检查和更新状态。然而,AbstractQueuedSyn ...
JAVA.util.concurrent 同步框架(翻译二)
接上一篇:http://caoyaojun1988-163-com.iteye.com/admin/blogs/1279097
3.3 队列
框架的核心是维护阻塞线程的队列,队列的策略是先进先出(FIFO),因 ...
JAVA.util.concurrent 同步框架(翻译一)
最近在使用memcache客户端的时候,发现一个可能是多线程的问题,客户端的实现是NIO+JUC,由于出现频率很低,场景没有办法复原,一直没有找到问题的真正原因,通过代码走查也没有发现任何问题,于是决定回顾一下JUC的东西,看看是不是可以受到启发,于是决定先看一下大牛Doug Lea的论文,顺便翻译一下。由于英文水平很挫,又是第一次,希望不要误导了大家。废话不表。
JAVA.util. ...
关于Java并发包下AQS队列的一点点看法
No-Blocking算法(简称NB)作为科研的主题已经有20年了,但直到1.5才被大量线上应用;
我们第一次见到CAS估计都是从那个++引入的:用AtomicInteger和带synchronized关键字的++比看谁加到1000用的时间更少,于是凭借这个小小的volatile int变量我们也就达到了把锁的粒度降到最低、进而达到高并发的目的,然而如果没有CLH队列的保证n个线程疯 ...