亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網
    最全最豐富的資訊網站

    golang 什么時候用鎖

    golang 什么時候用鎖

    Go語言包中的 sync 包提供了兩種鎖類型:sync.Mutex 和 sync.RWMutex。 (推薦學習:go)

    Mutex 是最簡單的一種鎖類型,同時也比較暴力,當一個 goroutine 獲得了 Mutex 后,其他 goroutine 就只能乖乖等到這個 goroutine 釋放該 Mutex。

    RWMutex 相對友好些,是經典的單寫多讀模型。在讀鎖占用的情況下,會阻止寫,但不阻止讀,也就是多個 goroutine 可同時獲取讀鎖(調用 RLock() 方法;

    而寫鎖(調用 Lock() 方法)會阻止任何其他 goroutine(無論讀和寫)進來,整個鎖相當于由該 goroutine 獨占。從 RWMutex 的實現看,RWMutex 類型其實組合了 Mutex:

    type RWMutex struct {     w Mutex     writerSem uint32     readerSem uint32     readerCount int32     readerWait int32 }

    sync.mutex 加鎖后禁止其他地方讀或寫,這個適用于可能出現的在不同go協(xié)程中修改同一個數據

    sync.rwmutex 的lock 和 unlock 的使用和sync.mutex類似

    sync.rwmutex 的rlock和runlock的使用適用于要讀取數據,防止在讀取的同時可能出現的別的地方寫入,而導致的讀取失敗

    贊(0)
    分享到: 更多 (0)
    網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號