国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - Java中使用synchronized關(guān)鍵字實(shí)現(xiàn)簡(jiǎn)單同步操作示例

Java中使用synchronized關(guān)鍵字實(shí)現(xiàn)簡(jiǎn)單同步操作示例

2019-12-15 14:33JUNJIE JAVA教程

這篇文章主要介紹了Java中使用synchronized關(guān)鍵字實(shí)現(xiàn)簡(jiǎn)單同步操作示例,本文起講解了synchronized修飾函數(shù)、synchronized修飾代碼塊、synchronized修飾靜態(tài)方法等內(nèi)容,需要的朋友可以參考下

簡(jiǎn)單記錄下java中synchronized關(guān)鍵字的使用方法。

在介紹之前需要明確下java中的每一個(gè)類的對(duì)象實(shí)例都有且只有一個(gè)鎖(lock)和之相關(guān)聯(lián),synchronized關(guān)鍵字只作用于該鎖,即可以認(rèn)為synchronized只對(duì)java類的對(duì)象實(shí)例起作用。

synchronized修飾函數(shù)

復(fù)制代碼代碼如下:

public synchronized aMethod(){
}


這就是最常用的情景,那么這個(gè)同步方法的用途是啥,為了方便就記作aMethod方法。

 

1、synchronized鎖定的是調(diào)用這個(gè)同步方法的對(duì)象實(shí)例,舉個(gè)例子,同一個(gè)實(shí)例P1在不同線程中都調(diào)用aMethod時(shí)會(huì)產(chǎn)生同步;
2、需要注意的是這個(gè)對(duì)象所屬的類的另一對(duì)象P2卻能夠任意調(diào)用這個(gè)aMethod,因?yàn)椴煌膶?duì)象實(shí)例的synchronized方法是不相干擾的。也就是說(shuō),其它線程照樣可以同時(shí)訪問(wèn)相同類的另一個(gè)對(duì)象實(shí)例中的aMethod方法;
3、如果一個(gè)對(duì)象有多個(gè)synchronized方法,比如aMethod、bMethod、cMethod,現(xiàn)在只要一個(gè)線程訪問(wèn)了其中的一個(gè)synchronized方法,其它線程不能同時(shí)訪問(wèn)這個(gè)對(duì)象中任何一個(gè)synchronized方法。

上述代碼其實(shí)等價(jià)于下面:

復(fù)制代碼代碼如下:

public void aMethod() {   
    synchronized (this) { 
    }   
}


這里的this就是指的該實(shí)例對(duì)象的引用,如P1。可見(jiàn)同步方法實(shí)質(zhì)是將synchronized作用于object reference。那個(gè)拿到了P1對(duì)象鎖的線程,才能夠調(diào)用P1的同步方法,而對(duì)P2而言,P1這個(gè)鎖和他毫不相干,程序也可能在這種情形下擺脫同步機(jī)制的控制,造成數(shù)據(jù)混亂。由此我們引出了下面的同步塊。

 

synchronized修飾代碼塊

復(fù)制代碼代碼如下:

public void dMethod(SomeObject so) {   
    synchronized(so) {
    }   
}


在這里synchronized獲得鎖就是so這個(gè)對(duì)象的鎖,因而誰(shuí)拿到這個(gè)鎖誰(shuí)就能夠運(yùn)行他所控制的那段代碼。當(dāng)有一個(gè)明確的對(duì)象作為鎖時(shí),就能夠這樣寫程式,但當(dāng)沒(méi)有明確的對(duì)象作為鎖,只是想讓一段代碼同步時(shí),能夠創(chuàng)建一個(gè)特別的instance變量(他得是個(gè)對(duì)象)來(lái)充當(dāng)鎖:

復(fù)制代碼代碼如下:

class Foo implements Runnable {
    private byte[] lock = new byte[0];
    Public void method() {
        synchronized(lock) {
        }
    }
}


零長(zhǎng)度的byte數(shù)組對(duì)象創(chuàng)建起來(lái)將比任何對(duì)象都經(jīng)濟(jì)高效。

 

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

前面提到了synchronized關(guān)鍵字只對(duì)不同線程中的P1實(shí)例有效,那如何可以同時(shí)對(duì)P1和P2不同實(shí)例有效呢,答案就是使用synchronized修飾靜態(tài)方法,類的靜態(tài)方法可以說(shuō)是這個(gè)類自有的,并不依賴類的實(shí)例,所以我們只要對(duì)類的靜態(tài)方法使用synchronized關(guān)鍵字來(lái)修飾就可以達(dá)到不同實(shí)例間的同步了。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 隔壁老王国产在线精品 | 激情欧美一区二区三区中文字幕 | 激情综合色综合久久综合 | 国产激情午夜 | 国产一区二区精品久久岳 | 国产精品毛片久久久久久久明星 | 日韩精品一区二区三区中文字幕 | 综合五月网 | 人人澡人人射 | 欧美日韩不卡视频 | 亚洲国内精品 | 欧美综合久久 | 日韩一区二区三区在线观看 | 久草视频国产 | 欧美日韩网站 | 久日av| 亚洲成人激情在线 | 北条麻妃一区二区三区在线观看 | 91se在线| 欧美精品一区二区三区在线 | 国产一区 | 欧美视频在线一区 | 国产一区中文字幕 | av中文字幕第一页 | 成人片网址 | 国产欧美日本 | 国产91在线播放 | 午夜精品久久久久久久久 | 国产精品自产拍在线观看 | 国产精品成人一区二区三区 | 国产黄色小视频 | 成人免费视频观看视频 | 一区二区av | 色吧av | 91一区二区三区 | 国产精品毛片久久久久久久明星 | 精品自拍视频在线观看 | www.国产 | 国产在线观看高清 | 天堂资源库| 久久香视频 |