Go:sync包的使用
sync包的使用
? ? 1、MUtex互斥鎖
? ? ? ?- Lock()? 寫的時(shí)候 排斥其他的讀鎖和寫鎖
? ? ? ?- Unlock()
? ? 2、RWMutex讀寫互斥鎖
? ? ? ? - Lock()? 寫的時(shí)候 排斥其他的讀鎖和寫鎖
? ? ? ? - Unlock()
? ? ? ? - Rlock()? 在讀取的時(shí)候,不會(huì)排斥其他的讀取鎖,但是會(huì)排斥掉寫鎖
? ? ? ? - Runlock()
? ? 3、Once
? ? ? ? - Once.Do(一個(gè)函數(shù))這個(gè)方法無論被調(diào)用多少次,這里只會(huì)執(zhí)行一次
? ? 4、WaitGroup
? ? ? ? - Add(delta int)? 設(shè)定需要執(zhí)行Done多少次
? ? ? ? - Done() Done一次+1
? ? ? ? - Wait() 在達(dá)到Done的次數(shù)前一直阻塞
? ? 5、Map一個(gè)并發(fā)字典
? ? ? ? - Store:寫
? ? ? ? - Load:讀
? ? ? ? - LoadOrStore:讀的時(shí)候如果不存在,就塞進(jìn)去
? ? ? ? - Range
? ? ? ? - Delete