java 多线程中的锁的类别及使用
Posted 逆流而上
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 多线程中的锁的类别及使用相关的知识,希望对你有一定的参考价值。
目前在Java中存在两种锁机制:
- synchronized
- Lock
Lock接口及其实现类是JDK5增加的内容,其作者是大名鼎鼎的并发专家Doug Lea。
数据同步需要依赖锁,那锁的同步又依赖谁?
synchronized给出的答案是在软件层面依赖JVM,
而Lock给出的方案是在硬件层面依赖特殊的CPU指令
Synchronized
其应用层的语义是可以把任何一个非null对象作为"锁"
当synchronized作用在方法上时,锁住的便是对象实例(this);
当作用在静态方法时锁住的便是对象对应的Class实例,因为Class数据存在于永久带,因此静态方法锁相当于该类的一个全局锁;
当synchronized作用于某一个对象实例时,锁住的便是对应的代码块。
在HotSpot JVM实现中,锁有个专门的名字:对象监视器。
参考博客:http://blog.csdn.net/chen77716/article/details/6618779
以上是关于java 多线程中的锁的类别及使用的主要内容,如果未能解决你的问题,请参考以下文章