互联网面试宝典

您现在的位置是: 首页 > Golang

问题详情

如何创建和使用Golang中的并发锁?

面试宝典 2023-06-12 Web前端开发工程师 33
在Golang中,可以使用内置的sync包来实现并发锁。

创建锁:

使用sync包中的Mutex类型可以创建一个互斥锁。

使用sync包中的RWMutex类型可以创建一个读写锁,并发读、互斥写。

例如:

```
var mutex sync.Mutex // 定义互斥锁
var rwMutex sync.RWMutex // 定义读写锁
```

使用锁:

对于互斥锁,可以使用Lock()方法来获取锁,使用Unlock()方法来释放锁。

对于读写锁,可以使用RLock()方法来获取读锁,使用RUnlock()方法来释放读锁;使用Lock()方法来获取写锁,使用Unlock()方法来释放写锁。

例如:

```
// 互斥锁使用示例
mutex.Lock()
// ...
mutex.Unlock()

// 读写锁使用示例
rwMutex.RLock()
// ...
rwMutex.RUnlock()

rwMutex.Lock()
// ...
rwMutex.Unlock()
```