Golang锁分类:互斥锁(Mutex)、读写锁(RWMutex)。
互斥锁
在编写代码中引入了对象互斥锁的概念,来保证共享数据操作的完整性。每个数据对象都对应于一个可称为" 互斥锁" 的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象。
lock := &sync.Mutex{} //锁声明
lock.Lock() //获取锁
lock.Unlock()//释放锁
读写锁
读写锁实际是一种特殊的自旋锁,它把对共享资源的访问者划分成读者和写者,读者只对共享资源进行读访问,写者则需要对共享资源进行写操作。
lock := &sync.RWMutex{}//锁声明
lock.RLock() /lock.Lock()// 读/写锁获取
lock.RUnlock()/lock.Unlock() //释放读写锁