image

编辑人: 桃花下浅酌

calendar2025-06-11

message1

visits183

什么是互斥锁(Mutex)?在Go语言中如何使用互斥锁来保护共享资源?

互斥锁是一种并发编程中常用的同步机制,用于保护共享资源的访问。

在Go语言中,可以使用sync包中的Mutex类型来实现互斥锁。通过调用Lock方法来获取锁,保护共享资源的访问,然后在使用完共享资源后调用Unlock方法释放锁。

代码示例:


package main

import (
 "fmt"
 "sync"
)

var (
 counter int
 mutex   sync.Mutex
)

func increment() {
 mutex.Lock()
 counter++
 mutex.Unlock()
}

func main() {
 var wg sync.WaitGroup
 for i := 0; i < 1000; i++ {
  wg.Add(1)
  go func() {
   defer wg.Done()
   increment()
  }()
 }
 wg.Wait()

 fmt.Println("Counter:", counter)
}

在上述代码中,我们定义了一个全局变量counter和一个sync.Mutex类型的互斥锁mutex。在increment函数中,我们使用mutex.Lock()获取锁,对counter进行递增操作,然后使用mutex.Unlock()释放锁。通过使用互斥锁,我们确保了对counter的并发访问的安全性。


喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:什么是互斥锁(Mutex)?在Go语言中如何使用互斥锁来保护共享资源?

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share