偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

聊聊Golang的讀寫鎖

開發(fā) 前端
如果需要使用公平鎖,可以考慮使用sync.Mutex,它保證等待時(shí)間最長的線程能夠最先獲取鎖。但是需要注意的是,公平鎖會(huì)導(dǎo)致額外的開銷,因?yàn)樗枰S護(hù)等待隊(duì)列,進(jìn)行線程切換等操作。

Go語言中的RWMutex是一種讀寫鎖,它采用了讀寫分離的思想,可以同時(shí)支持多個(gè)讀操作,但只能同時(shí)有一個(gè)寫操作。它的原理是這樣的:

  1. RWMutex內(nèi)部維護(hù)兩個(gè)計(jì)數(shù)器,一個(gè)是讀計(jì)數(shù)器,一個(gè)是寫計(jì)數(shù)器。
  2. 在讀操作執(zhí)行時(shí),讀計(jì)數(shù)器會(huì)加1,如果此時(shí)寫計(jì)數(shù)器的值不為0,則說明有寫操作正在進(jìn)行,那么這個(gè)讀操作就需要阻塞等待。
  3. 在寫操作執(zhí)行時(shí),會(huì)先判斷讀計(jì)數(shù)器的值是否為0,如果不為0,則說明有讀操作正在進(jìn)行,那么這個(gè)寫操作就需要阻塞等待。寫操作執(zhí)行時(shí),會(huì)把寫計(jì)數(shù)器加1,這樣其他讀寫操作就無法繼續(xù)執(zhí)行了。
  4. 當(dāng)讀操作執(zhí)行完畢時(shí),讀計(jì)數(shù)器會(huì)減1,如果此時(shí)讀計(jì)數(shù)器的值為0,那么說明沒有其他讀操作在進(jìn)行了,可以允許寫操作了。
  5. 當(dāng)寫操作執(zhí)行完畢時(shí),寫計(jì)數(shù)器會(huì)減1,如果此時(shí)寫計(jì)數(shù)器的值為0,那么說明沒有其他讀寫操作在進(jìn)行了,此時(shí)其他讀寫操作就可以繼續(xù)執(zhí)行了。

當(dāng)有大量讀時(shí),寫操作不會(huì)餓死,這是因?yàn)樽x寫鎖支持優(yōu)先處理寫操作的。具體來說,當(dāng)一個(gè)寫操作請(qǐng)求鎖時(shí),如果此時(shí)已經(jīng)有其他讀或?qū)懖僮鞒钟墟i,那么該寫操作會(huì)被阻塞,等待其他操作釋放鎖。但是,一旦沒有任何讀或?qū)懖僮鞒钟墟i,那么該寫操作會(huì)立即獲取到鎖,并且優(yōu)先執(zhí)行,即使此時(shí)已經(jīng)有很多讀操作在等待。

也就是說讀寫鎖并不是公平鎖。因?yàn)椴⒉槐WC等待時(shí)間最長的線程能夠最先獲取鎖。

如果需要使用公平鎖,可以考慮使用sync.Mutex,它保證等待時(shí)間最長的線程能夠最先獲取鎖。但是需要注意的是,公平鎖會(huì)導(dǎo)致額外的開銷,因?yàn)樗枰S護(hù)等待隊(duì)列,進(jìn)行線程切換等操作。

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2023-06-02 08:29:24

https://wwMutex

2023-11-06 09:21:39

表達(dá)式類型Cause

2024-01-29 01:08:01

悲觀鎖遞歸鎖讀寫鎖

2022-10-24 00:03:26

GolangNew函數(shù)

2024-10-06 12:56:36

Golang策略設(shè)計(jì)模式

2024-05-17 09:33:22

樂觀鎖CASversion

2023-01-26 00:59:39

B-Treegolang度量衡

2020-02-24 21:43:36

avaJVM 級(jí)鎖線程安全

2022-08-05 08:27:05

分布式系統(tǒng)線程并發(fā)

2024-02-20 21:34:16

循環(huán)GolangGo

2024-05-15 09:41:22

樂觀鎖編程

2024-10-10 09:40:29

2022-04-08 08:27:08

分布式鎖系統(tǒng)

2022-02-08 08:12:51

無鎖編程設(shè)計(jì)

2023-01-04 13:43:24

讀寫鎖AQS共享模式

2019-11-28 16:00:06

重入鎖讀寫鎖樂觀鎖

2022-06-07 08:14:35

PGPAGETUPLE

2024-06-11 00:01:00

并發(fā)validate場景

2021-07-06 08:37:29

Redisson分布式

2022-12-06 08:12:11

Java關(guān)鍵字
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)