• 互斥锁

    func main() {
        var mutex sync.Mutex
        count := 0
    
        for r := 0; r < 50; r++ {
           go func() {
                   mutex.Lock()
                   count += 1
                   mutex.Unlock()
               }()
           }
    
           time.Sleep(time.Second)
           fmt.Println("the count is : ", count)
        }
    
  • 读写锁

    1. func (rw *RWMutex) Lock()
    2. func (rw *RWMutex) RLock()
    3. func (rw *RWMutex) RLocker() Locker
    4. func (rw *RWMutex) RUnlock()
    5. func (rw *RWMutex) Unlock()