前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >go 互斥锁的案例

go 互斥锁的案例

作者头像
贵哥的编程之路
发布2024-03-22 08:37:03
560
发布2024-03-22 08:37:03
举报
代码语言:javascript
复制
package main

import (
    "fmt"
    "sync"
)

var counter int64
var wg sync.WaitGroup
var mu sync.Mutex // 声明一个互斥锁

func incr() {
    mu.Lock() // 获取互斥锁.确保只有一个 goroutine 能够访问共享资源。
    defer mu.Unlock() // 在函数执行结束时释放互斥锁,以免忘记手动释放锁导致死锁。

    counter++ // 对共享变量进行操作
    wg.Done()//代表一个go任务结束操作
}

func main() {
    wg.Add(2)//需要等待的 goroutine 数量为 2。

    go incr()
    go incr()

    wg.Wait()//阻塞主 goroutine(main) 直到所有 goroutine 执行完成。

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

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-03-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com