国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

多線程互斥鎖 多線程的同步和互斥有什么區(qū)別?

多線程的同步和互斥有什么區(qū)別?例如:如果把整條道路看作一個(gè)過(guò)程,那么在道路中間用白色虛線隔開(kāi)的車道就是過(guò)程中的線。①這些線程(通道)共享進(jìn)程(道路)的公共資源(土地資源)。②這些線程(車道)必須依賴于

多線程的同步和互斥有什么區(qū)別?

例如:如果把整條道路看作一個(gè)過(guò)程,那么在道路中間用白色虛線隔開(kāi)的車道就是過(guò)程中的線。

①這些線程(通道)共享進(jìn)程(道路)的公共資源(土地資源)。

②這些線程(車道)必須依賴于進(jìn)程(道路),也就是說(shuō),沒(méi)有進(jìn)程線程就不可能存在(就像離開(kāi)道路一樣,車道是沒(méi)有意義的)。

③這些線程(車道)可以同時(shí)執(zhí)行(你走你的路,我走我的路),也可以同步執(zhí)行(有些車道在紅綠燈亮?xí)r不允許前進(jìn)或轉(zhuǎn)彎,必須等待其他車道的車輛通過(guò))。

④這些線程(車道)依賴于代碼邏輯(紅綠燈)來(lái)控制操作。一旦代碼邏輯控制出錯(cuò)(死鎖,多個(gè)線程同時(shí)爭(zhēng)奪唯一的資源),那么線程就會(huì)陷入混亂。

5. 在這些線程(通道)中誰(shuí)先運(yùn)行是未知的,只有當(dāng)線程剛剛就緒并分配給CPU時(shí)間片(紅綠燈改變)時(shí)才知道。注意:由于用于互斥的信號(hào)量SEM與所有并發(fā)進(jìn)程相關(guān),因此稱為公共信號(hào)量。公共信號(hào)量的價(jià)值反映了公共資源的數(shù)量。只要臨界區(qū)位于P(SEM)和V(SEM)之間,就可以實(shí)現(xiàn)過(guò)程間的互斥。就像火車上的每節(jié)車廂只有一個(gè)廁所一樣,車廂里的所有乘客都共享這一公共資源:廁所,因此乘客進(jìn)入廁所必須相互排斥。只要把馬桶放在P(SEM)和V(SEM)之間,就可以達(dá)到互斥的效果。

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

下面簡(jiǎn)要說(shuō)明以下原因:

鎖定是因?yàn)椴僮鞑皇窃拥?。讓我們用操作一?lái)解釋它??聪旅鎯蓚€(gè)圖。

我這個(gè)操作需要

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

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

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

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

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

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