五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

2021-02-20:手寫代碼:讀寫鎖。

2021-02-20 23:06 作者:福大大架構(gòu)師每日一題  | 我要投稿

福哥答案2021-02-20:

四大方法:讀加鎖,讀解鎖,寫加鎖,寫解鎖。讀加鎖里有寫加鎖,讀解鎖里有寫解鎖。代碼有寫線程饑餓現(xiàn)象,但實(shí)現(xiàn)簡(jiǎn)單。

代碼用golang編寫,代碼如下:

```go

package main

import (

? ? "fmt"

? ? "sync"

? ? "time"

)

func main() {

? ? fdd := FddRWMutex{}

? ? go func() {

? ? ? ? i := 0

? ? ? ? for k := 0; k < 5; k++ {

? ? ? ? ? ? go func() {

? ? ? ? ? ? ? ? j := i

? ? ? ? ? ? ? ? i++

? ? ? ? ? ? ? ? fdd.RLock()

? ? ? ? ? ? ? ? fmt.Println("讀操作", j)

? ? ? ? ? ? ? ? time.Sleep(5 * time.Second)

? ? ? ? ? ? ? ? fdd.RUnlock()

? ? ? ? ? ? }()

? ? ? ? ? ? time.Sleep(3 * time.Second)

? ? ? ? }

? ? }()

? ? time.Sleep(1000)

? ? fdd.Lock()

? ? fmt.Println("寫操作------------------------------------------")

? ? fdd.Unlock()

? ? fmt.Println("有寫線程饑餓現(xiàn)象")

}

type FddRWMutex struct {

? ? w? ? ? ? ? ?sync.Mutex

? ? r? ? ? ? ? ?sync.Mutex

? ? readerCount int

}

func (rw *FddRWMutex) RLock() {

? ? rw.r.Lock()

? ? rw.readerCount++

? ? if rw.readerCount == 1 {

? ? ? ? rw.w.Lock()

? ? }

? ? rw.r.Unlock()

}

func (rw *FddRWMutex) RUnlock() {

? ? rw.r.Lock()

? ? rw.readerCount--

? ? if rw.readerCount == 0 {

? ? ? ? rw.w.Unlock()

? ? }

? ? rw.r.Unlock()

}

func (rw *FddRWMutex) Lock() {

? ? rw.w.Lock()

}

func (rw *FddRWMutex) Unlock() {

? ? rw.w.Unlock()

}

```

執(zhí)行結(jié)果如下:

***

[評(píng)論](https://user.qzone.qq.com/3182319461/blog/1613775238)


2021-02-20:手寫代碼:讀寫鎖。的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
张掖市| 桃园市| 鹤壁市| 湄潭县| 剑阁县| 特克斯县| 陈巴尔虎旗| 新竹县| 临夏市| 凤台县| 辽源市| 额济纳旗| 杭锦旗| 海原县| 太白县| 石屏县| 合阳县| 壤塘县| 阿拉善左旗| 阳原县| 波密县| 五大连池市| 凤山县| 南木林县| 克什克腾旗| 公安县| 民勤县| 惠东县| 河池市| 邵东县| 子长县| 乐业县| 衡阳市| 吉安市| 龙门县| 乐陵市| 南雄市| 巢湖市| 句容市| 丹阳市| 新化县|