ReentrantReadWriteLock 可重入的读写锁
2016-04-27 11:12
411 查看
可重入:就是同一个线程可以重复加锁,可以对同一个锁加多次,每次释放的时候会释放一次锁,直到该线程加锁次数为0,这个线程才释放锁。
读写锁: 也就是读锁可以共享,多个线程可以同时拥有读锁,但是写锁却只能只有一个线程拥有,而且获取写锁的时候,其他线程都已经释放了读锁,而且在该线程获取写锁之后,其他线程不能再获取读锁。
锁降级:线程获取了写锁后,再去获取读锁,然后释放写锁,线程的锁就从写锁降级为了读锁。例如:利用重入升级缓存后把写锁降低为读锁(这个线程需要继续使用缓存)。
表发包:
java.util.concurrent.locks
参考:
http://blog.csdn.net/zhongweijian/article/details/7719220 http://www.codeceo.com/article/java-rd-lock.html
http://www.liechuchina.com/
读写锁: 也就是读锁可以共享,多个线程可以同时拥有读锁,但是写锁却只能只有一个线程拥有,而且获取写锁的时候,其他线程都已经释放了读锁,而且在该线程获取写锁之后,其他线程不能再获取读锁。
锁降级:线程获取了写锁后,再去获取读锁,然后释放写锁,线程的锁就从写锁降级为了读锁。例如:利用重入升级缓存后把写锁降低为读锁(这个线程需要继续使用缓存)。
表发包:
java.util.concurrent.locks
参考:
http://blog.csdn.net/zhongweijian/article/details/7719220 http://www.codeceo.com/article/java-rd-lock.html
http://www.liechuchina.com/
相关文章推荐
- win7中安装redis
- GCD
- SpringMvc与Struts2的对比,孰优孰劣
- 通过减色运算来学习遍历图像像素值三种方法
- If Is Evil
- ORACLE语句获取表名列名
- 是否有Root权限
- mysql table checksum
- Qt入门之信号与槽机制
- Mybatis之传多个参数方法总结
- Nio
- Struts2-S2-032远程命令执行EXP
- 数据结构和算法 c#– 1.单项链表
- Redis复制与可扩展集群搭建
- ClassNotFoundException和NoClassDefFoundError的区别
- 在string.xml显示%
- 2016年4月27
- 左右按钮轮播代码
- eclipse中svn的使用:Failed to run the WC DB work queue associated with 'E:\NewEclip
- mysql 远程登录