真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

synchronized怎么修飾靜態(tài)和非靜態(tài)方法-創(chuàng)新互聯(lián)

這篇文章主要為大家展示了synchronized怎么修飾靜態(tài)和非靜態(tài)方法,內(nèi)容簡(jiǎn)而易懂,希望大家可以學(xué)習(xí)一下,學(xué)習(xí)完之后肯定會(huì)有收獲的,下面讓小編帶大家一起來看看吧。

成都創(chuàng)新互聯(lián)一直在為企業(yè)提供服務(wù),多年的磨煉,使我們?cè)趧?chuàng)意設(shè)計(jì),成都全網(wǎng)營(yíng)銷推廣到技術(shù)研發(fā)擁有了開發(fā)經(jīng)驗(yàn)。我們擅長(zhǎng)傾聽企業(yè)需求,挖掘用戶對(duì)產(chǎn)品需求服務(wù)價(jià)值,為企業(yè)制作有用的創(chuàng)意設(shè)計(jì)體驗(yàn)。核心團(tuán)隊(duì)擁有超過10年以上行業(yè)經(jīng)驗(yàn),涵蓋創(chuàng)意,策化,開發(fā)等專業(yè)領(lǐng)域,公司涉及領(lǐng)域有基礎(chǔ)互聯(lián)網(wǎng)服務(wù)四川雅安服務(wù)器托管、app軟件定制開發(fā)、手機(jī)移動(dòng)建站、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)絡(luò)整合營(yíng)銷。

前言

最近被問到了這個(gè)問題,第一次回答的也是很不好,在此參考網(wǎng)上答案進(jìn)行整理記錄。供大家學(xué)習(xí)參考。

Synchronized修飾非靜態(tài)方法

Synchronized修飾非靜態(tài)方法,實(shí)際上是對(duì)調(diào)用該方法的對(duì)象加鎖,俗稱“對(duì)象鎖”。

Java中每個(gè)對(duì)象都有一個(gè)鎖,并且是唯一的。假設(shè)分配的一個(gè)對(duì)象空間,里面有多個(gè)方法,相當(dāng)于空間里面有多個(gè)小房間,如果我們把所有的小房間都加鎖,因?yàn)檫@個(gè)對(duì)象只有一把鑰匙,因此同一時(shí)間只能有一個(gè)人打開一個(gè)小房間,然后用完了還回去,再由JVM 去分配下一個(gè)獲得鑰匙的人。

情況1:同一個(gè)對(duì)象在兩個(gè)線程中分別訪問該對(duì)象的兩個(gè)同步方法

結(jié)果:會(huì)產(chǎn)生互斥。

解釋:因?yàn)殒i針對(duì)的是對(duì)象,當(dāng)對(duì)象調(diào)用一個(gè)synchronized方法時(shí),其他同步方法需要等待其執(zhí)行結(jié)束并釋放鎖后才能執(zhí)行。正如上面所解釋的,相當(dāng)于一個(gè)對(duì)象只有一把鑰匙了,里面的兩個(gè)同步方法是兩個(gè)房間,因此,同一時(shí)間只能用一個(gè)鑰匙訪問一個(gè)方法。

情況2:不同對(duì)象在兩個(gè)線程中調(diào)用同一個(gè)同步方法

結(jié)果:不會(huì)產(chǎn)生互斥。

解釋:因?yàn)槭莾蓚€(gè)對(duì)象,就相當(dāng)于兩個(gè)大房子,彼此之間互不干擾,具有兩把鑰匙。鎖針對(duì)的是對(duì)象,并不是方法,所以可以并發(fā)執(zhí)行,不會(huì)互斥。形象的來說就是因?yàn)槲覀兠總€(gè)線程在調(diào)用方法的時(shí)候都是new 一個(gè)對(duì)象,那么就會(huì)出現(xiàn)兩個(gè)空間,兩把鑰匙。

Synchronized修飾靜態(tài)方法

Synchronized修飾靜態(tài)方法,實(shí)際上是對(duì)該類對(duì)象加鎖,俗稱“類鎖”。

情況1:用類直接在兩個(gè)線程中調(diào)用兩個(gè)不同的同步方法

結(jié)果:會(huì)產(chǎn)生互斥。

解釋:因?yàn)閷?duì)靜態(tài)對(duì)象加鎖實(shí)際上對(duì)類(.class)加鎖,類對(duì)象只有一個(gè),可以理解為任何時(shí)候都只有一個(gè)空間,里面有N個(gè)房間,一把鎖,因此房間(同步方法)之間一定是互斥的。

注:上述情況和用單例模式聲明一個(gè)對(duì)象來調(diào)用非靜態(tài)方法的情況是一樣的,因?yàn)橛肋h(yuǎn)就只有這一個(gè)對(duì)象。所以訪問同步方法之間一定是互斥的。

情況2:用一個(gè)類的靜態(tài)對(duì)象在兩個(gè)線程中調(diào)用靜態(tài)方法或非靜態(tài)方法

結(jié)果:會(huì)產(chǎn)生互斥。

解釋:因?yàn)槭且粋€(gè)對(duì)象調(diào)用,同上。都調(diào)用靜態(tài)方法的時(shí)候,相當(dāng)于是同一個(gè)類鎖,用的都是同一個(gè)類對(duì)象。

都調(diào)用非靜態(tài)方法的時(shí)候,相當(dāng)于是同一個(gè)對(duì)象鎖。

情況3:一個(gè)對(duì)象在兩個(gè)線程中分別調(diào)用一個(gè)靜態(tài)同步方法和一個(gè)非靜態(tài)同步方法

結(jié)果:不會(huì)產(chǎn)生互斥。

解釋:因?yàn)殡m然是一個(gè)對(duì)象調(diào)用,但是兩個(gè)方法的鎖類型不同,調(diào)用的靜態(tài)方法實(shí)際上是類對(duì)象在調(diào)用,即這兩個(gè)方法產(chǎn)生的并不是同一個(gè)對(duì)象鎖,因此不會(huì)互斥,會(huì)并發(fā)執(zhí)行。

例子

pulbic class Something(){
  public synchronized void isSyncA(){}
  public synchronized void isSyncB(){}
  public static synchronized void cSyncA(){}
  public static synchronized void cSyncB(){}
}

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


分享題目:synchronized怎么修飾靜態(tài)和非靜態(tài)方法-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://weahome.cn/article/ggecs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部