天天看點

go的互斥鎖,讀寫互斥鎖,簡單redis分布式鎖

保證讀取每個變量都是安全的,互斥鎖能夠保證同一時間有且隻有一個goroutine進入臨界區,其他的goroutine則在等待鎖;

1.通過setnx指令設定key,不存在設定它的值,否則什麼也不做

2.用戶端1申請加鎖,加鎖成功,用戶端1加鎖設定一般是自已的線程id,或者uuid,用戶端1設定的鎖用戶端2不能打開,用戶端 2 申請加鎖,因為後到達,加鎖失敗

3.申請鎖時,給這把鎖設定一個「租期」不然會造成死鎖

4.也可以通過lua腳本實作解鎖

繼續閱讀