美文网首页
synchronized在静态方法和普通方法的异同

synchronized在静态方法和普通方法的异同

作者: cocalrush | 来源:发表于2017-04-25 23:18 被阅读0次

简单的来说就是 静态方法上的锁是锁住这个类的,普通方法上的锁是锁住这个对象的。
如果往详细了将就得说到synchronized怎么实现的。
Synchronized 两个方式:
对象的时候 偏向锁 轻量级锁 重量级锁

Java synchronized 关键字的实现原理:
synrhronized关键字简洁、清晰、语义明确,因此即使有了Lock接口,使用的还是非常广泛。其应用层的语义是可以把任何一个非null 对象 作为"锁",当synchronized作用在方法上时,锁住的便是对象实例(this);当作用在静态方法时锁住的便是对象对应的Class实例,因为 Class数据存在于永久带,因此静态方法锁相当于该类的一个全局锁;当synchronized作用于某一个对象实例时,锁住的便是对应的代码块。在 HotSpot JVM实现中,锁有个专门的名字:对象监视器。
Link: http://www.cnblogs.com/lykm02/p/4516777.html


相关文章

网友评论

      本文标题:synchronized在静态方法和普通方法的异同

      本文链接:https://www.haomeiwen.com/subject/lambzttx.html