zbb20180913 java synchronized同步静态方法和同步非静态方法的异同
生活随笔
收集整理的這篇文章主要介紹了
zbb20180913 java synchronized同步静态方法和同步非静态方法的异同
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
java synchronized同步靜態(tài)方法和同步非靜態(tài)方法的異同
所有的非靜態(tài)同步方法用的都是同一把鎖——實例對象本身,也就是說如果一個實例對象的非靜態(tài)同步方法獲取鎖后,該實例對象的其他非靜態(tài)同步方法必須等待獲取鎖的方法釋放鎖后才能獲取鎖,可是別的實例對象的非靜態(tài)同步方法因為跟該實例對象的非靜態(tài)同步方法用的是不同的鎖,所以毋須等待該實例對象已獲取鎖的非靜態(tài)同步方法釋放鎖就可以獲取他們自己的鎖。
而所有的靜態(tài)同步方法用的也是同一把鎖——類對象本身,這兩把鎖是兩個不同的對象,所以靜態(tài)同步方法與非靜態(tài)同步方法之間是不會有競態(tài)條件的。但是一旦一個靜態(tài)同步方法獲取鎖后,其他的靜態(tài)同步方法都必須等待該方法釋放鎖后才能獲取鎖,而不管是同一個實例對象的靜態(tài)同步方法之間,還是不同的實例對象的靜態(tài)同步方法之間,只要它們同一個類的實例對象!
轉(zhuǎn)載于:https://www.cnblogs.com/super-admin/p/9640498.html
總結(jié)
以上是生活随笔為你收集整理的zbb20180913 java synchronized同步静态方法和同步非静态方法的异同的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 原来文化设计可以这样玩!
- 下一篇: VMware设置及linux静态ip设置