成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

java線程的幾種狀態(tài) 多個(gè)線程可以讀一個(gè)變量,只有一個(gè)線程可以對(duì)這個(gè)變量進(jìn)行寫,到底要不要加鎖?

多個(gè)線程可以讀一個(gè)變量,只有一個(gè)線程可以對(duì)這個(gè)變量進(jìn)行寫,到底要不要加鎖?下面簡(jiǎn)要解釋一下原因:鎖定是因?yàn)椴僮鞑皇窃拥?。讓我們用操作一來解釋它??聪旅鎯蓚€(gè)圖。我這個(gè)操作需要看上面的第二個(gè)圖,你能很清

多個(gè)線程可以讀一個(gè)變量,只有一個(gè)線程可以對(duì)這個(gè)變量進(jìn)行寫,到底要不要加鎖?

下面簡(jiǎn)要解釋一下原因:

鎖定是因?yàn)椴僮鞑皇窃拥摹W屛覀冇貌僮饕粊斫忉屗?。看下面兩個(gè)圖。

我這個(gè)操作需要

看上面的第二個(gè)圖,你能很清楚地理解這個(gè)過程嗎?

鎖定是為了確保上述三個(gè)步驟是原子操作。

回到問題上來,只有一個(gè)線程要寫,沒有競(jìng)爭(zhēng),所以不需要鎖定。

但是,如果你看第一張圖片,因?yàn)橹鲀?nèi)存和本地內(nèi)存的存在

在一個(gè)線程寫入后,其他線程無法立即看到它。這就是可見性問題。

添加volatile關(guān)鍵字后,它將在操作后強(qiáng)制工作內(nèi)存和主內(nèi)存同步,以確保其他線程可以立即看到它。

下面對(duì)sleep()和wait()的描述哪個(gè)是正確的?

對(duì)于sleep()和wait(),錯(cuò)誤如下:(1)A.sleep是thread類的方法,wait是object類的方法;(2)B.sleep不釋放object鎖,wait放棄object鎖;(3)C.sleep暫停線程,但仍然保持監(jiān)視狀態(tài),之后會(huì)自動(dòng)恢復(fù)結(jié)束;(4)d等待后,進(jìn)入等待鎖池。只有在向?qū)ο蟀l(fā)出notify方法之后,它才能獲得對(duì)象鎖并進(jìn)入運(yùn)行狀態(tài)。答:dsleep是thread類的一個(gè)方法,它使線程在指定的時(shí)間內(nèi)暫停執(zhí)行,給其他線程執(zhí)行的機(jī)會(huì),但監(jiān)視狀態(tài)保持不變,并在該時(shí)間后自動(dòng)恢復(fù)。調(diào)用sleep不會(huì)釋放對(duì)象鎖。Wait是object類的一個(gè)方法。對(duì)此對(duì)象調(diào)用wait方法會(huì)導(dǎo)致線程放棄對(duì)象鎖并進(jìn)入等待此對(duì)象的等待鎖池。只有在此對(duì)象上發(fā)出notify方法(或notifyAll)后,線程才能進(jìn)入對(duì)象鎖池,準(zhǔn)備獲取對(duì)象鎖并進(jìn)入操作狀態(tài)。