9.2 sync.Mutex互斥鎖
知識點
- 1.一個隻能為1和0的信号量叫做二進制信号量(binary semaphore)
- 2.這種互斥很實用,而且被sync包裡的Mutex類型直接支援
- 3.Lock和Unlock的調用是在所有路徑中都嚴格配對的
- 4.一個deferred Unlock即使在臨界區發生panic時依然會執行
- 5.defer調用隻會比顯式地調用Unlock成本高那麼一點點,不過卻在很大程度上保證了代碼的整潔性
9.3 sync.RWMutex讀寫鎖
- 1.一種特殊類型的鎖,其允許多個隻讀操作并行執行,但寫操作會完全互斥
- 2.這種鎖叫作“多讀單寫”鎖(multiple readers, single writer lock),Go語言提供的這樣的鎖是sync.RWMutex
- 3.RLock隻能在臨界區共享變量沒有任何寫入操作時可用
- 4.RWMutex隻有當獲得鎖的大部分goroutine都是讀操作,而鎖在競争條件下,也就是說,goroutine們必須等待才能擷取到鎖的時候,RWMutex才是最能帶來好處的
代碼
//等待你們的完善
——不足之處,歡迎補充——
備注
備注
《Go 語言聖經》
- 學習記錄所使用的GO版本是1.8
- 學習記錄所使用的編譯器工具為GoLand
- 學習記錄所使用的系統環境為Mac os
- 學習者有一定的C語言基礎
代碼倉庫