Go:sync包的使用
sync包的使用
1、MUtex互斥锁
- Lock() 写的时候 排斥其他的读锁和写锁
- Unlock()
2、RWMutex读写互斥锁
- Lock() 写的时候 排斥其他的读锁和写锁
- Unlock()
- Rlock() 在读取的时候,不会排斥其他的读取锁,但是会排斥掉写锁
- Runlock()
3、Once
- Once.Do(一个函数)这个方法无论被调用多少次,这里只会执行一次
4、WaitGroup
- Add(delta int) 设定需要执行Done多少次
- Done() Done一次+1
- Wait() 在达到Done的次数前一直阻塞
5、Map一个并发字典
- Store:写
- Load:读
- LoadOrStore:读的时候如果不存在,就塞进去
- Range
- Delete