当前位置: 首页 > news >正文

Golang 并发 Mutex 互斥锁的使用

Golang 并发 Mutex 互斥锁的使用

1. 初始化

func TestMutex(t *testing.T) {mu01 := sync.Mutex{}var mu02 sync.Mutex
}

两种方式都ok

2. Mutex使用

计数器统计,多个协程同时对同一个变量进行 ++

代码示例

var mu sync.Mutex
var counter intfunc TestMutexAdd(t *testing.T) {var wg sync.WaitGroupfor i := 0; i < 100; i++ {wg.Add(1)go execAdd(&wg)}wg.Wait()fmt.Printf("TestMutexAdd Counter: %d\n", counter)
}func execAdd(wg *sync.WaitGroup) {mu.Lock()counter++mu.Unlock()wg.Done()
}

输出

== RUN   TestMutexAdd
TestMutexAdd Counter: 100
--- PASS: TestMutexAdd (0.00s)

3. 参考

  • https://zhuanlan.zhihu.com/p/339883404
http://www.lryc.cn/news/346684.html

相关文章:

  • 20232906 2023-2024-2 《网络与系统攻防技术》第九次作业
  • 常见的十二种软件架构
  • 数据库出现死锁的解决方法参考
  • HCIP-Datacom-ARST自选题库_01_防火墙【6道题】
  • 力扣/leetcode383.比特位记数
  • react18【系列实用教程】useEffect —— 副作用操作 (2024最新版)
  • Excel 分组汇总后删除明细
  • docker runc升级1.1.12
  • C++接口:构建模块化与可扩展的软件架构
  • 【讲解下目标追踪】
  • 实时Linux对EtherCAT工业自动化协议的支持
  • ViLT 浅析
  • 7-117 死亡隧道
  • java数据结构与算法(链表归并排序)
  • 最新网页版USB转串口芯片CH340中文规格书手册(20240511)
  • 关于 MongoDB 数据库基本操作的详细介绍
  • 【网络基础】网络层 之 IP协议与分片、网段划分、IP地址分类、子网掩码与路由
  • C语言实现猜数字小游戏
  • iOS Failed to create provisioning profile.
  • 122. Kafka问题与解决实践
  • Pytorch常用的函数(九)torch.gather()用法
  • 用爬虫解决问题
  • 机器学习-有监督学习
  • 【详细介绍下Visual Studio】
  • 【Golang】实现 Excel 文件下载功能
  • 设计模式2——原则篇:依赖倒转原则、单一职责原则、合成|聚合复用原则、开放-封闭原则、迪米特法则、里氏代换原则
  • 深入探讨布隆过滤器算法:高效的数据查找与去重工具
  • 基于STC12C5A60S2系列1T 8051单片机实现一主单片机与一从单片机进行双向串口通信功能
  • ubuntu18.04安装docker容器
  • 202212青少年软件编程(Python)等级考试试卷(二级)