java对象锁与类锁区别
生活随笔
收集整理的這篇文章主要介紹了
java对象锁与类锁区别
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?
假設(shè)我有一個(gè)類ClassA,其中有一個(gè)方法synchronized methodA(),那么當(dāng)這個(gè)方法被調(diào)用的時(shí)候你獲得就是對象鎖,但是要注意,如果這個(gè)類有兩個(gè)實(shí)例,比如:ClassA a = new ClassA();ClassA b = new ClassA();那么如果你在a這對象上調(diào)用了methodA,不會(huì)影響b這個(gè)對象,也就是說對于b這個(gè)對象,他也可以調(diào)用methodA,因?yàn)檫@是兩對象,所以說對象鎖是針對對象的。而類鎖,其實(shí)沒有所謂的類鎖,因?yàn)轭愭i實(shí)際上就是這個(gè)類的對象的對象鎖,還是舉例,我有一個(gè)類ClassA,其中有一個(gè)方法synchronized static methodA(),注意這個(gè)方法是靜態(tài)的了,那就是說這個(gè)類的所有的對象都公用一個(gè)這個(gè)方法了,那如果你在這個(gè)類的某個(gè)對象上調(diào)用了這個(gè)方法,那么其他的對象如果想要用這個(gè)方法就得等著鎖被釋放,所以感覺就好像這個(gè)類被鎖住了一樣。總結(jié)
以上是生活随笔為你收集整理的java对象锁与类锁区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 黄帝的祖先是谁
- 下一篇: 异常与锁的释放(synchronized