zbb20180913 java synchronized同步静态方法和同步非静态方法的异同
java synchronized同步靜態(tài)方法和同步非靜態(tài)方法的異同
所有的非靜態(tài)同步方法用的都是同一把鎖——實(shí)例對(duì)象本身,也就是說如果一個(gè)實(shí)例對(duì)象的非靜態(tài)同步方法獲取鎖后,該實(shí)例對(duì)象的其他非靜態(tài)同步方法必須等待獲取鎖的方法釋放鎖后才能獲取鎖,可是別的實(shí)例對(duì)象的非靜態(tài)同步方法因?yàn)楦搶?shí)例對(duì)象的非靜態(tài)同步方法用的是不同的鎖,所以毋須等待該實(shí)例對(duì)象已獲取鎖的非靜態(tài)同步方法釋放鎖就可以獲取他們自己的鎖。
而所有的靜態(tài)同步方法用的也是同一把鎖——類對(duì)象本身,這兩把鎖是兩個(gè)不同的對(duì)象,所以靜態(tài)同步方法與非靜態(tài)同步方法之間是不會(huì)有競(jìng)態(tài)條件的。但是一旦一個(gè)靜態(tài)同步方法獲取鎖后,其他的靜態(tài)同步方法都必須等待該方法釋放鎖后才能獲取鎖,而不管是同一個(gè)實(shí)例對(duì)象的靜態(tài)同步方法之間,還是不同的實(shí)例對(duì)象的靜態(tài)同步方法之間,只要它們同一個(gè)類的實(shí)例對(duì)象!
轉(zhuǎn)載于:https://www.cnblogs.com/super-admin/p/9640498.html
總結(jié)
以上是生活随笔為你收集整理的zbb20180913 java synchronized同步静态方法和同步非静态方法的异同的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 原来文化设计可以这样玩!
- 下一篇: LinkedList源码学习