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