`

锁的理解

    博客分类:
  • java
 
阅读更多

sync(obj) 不是当前对象的锁 而是obj的锁 ,这样比较好,符合最小化范围原则。若sync{}代码块则是当前对象的锁,没必要范围太大了。所以sync(obj){}当代码执行完则释放obj的锁。

当线程1在对象 sync A()方法上执行,只有当A()方法执行完 释放了锁,线程2才能进该对象的sync B()方法。因为所有sync方法只有一个锁 即该对象的锁。

~~~~~~~~

同一个锁  互斥的 进了这个锁 其它线程就进不了了   进了syn方法 其它线程就进不了syn(this)

因为他们是同一个锁 当前对象的锁。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics