编程小窍门: 一个简单的go mutex的小例子

这篇具有很好参考价值的文章主要介绍了编程小窍门: 一个简单的go mutex的小例子。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本期小窍门用到了两个组件
  • mutex 这个类似其他语言的互斥锁
  • waitGroup 这个类似其他语言的信号量或者java的栅栏锁
示例如下
func TestDoSomething04(t *testing.T) {
	total := 0
	var wg = sync.WaitGroup{}
	var mut = sync.Mutex{}   
	for i := 0; i < 5000; i++ {
		go func() {
			wg.Add(1)
			defer func() {
				mut.Unlock()
				wg.Done()
			}()
			mut.Lock()
			total++
		}()
	}
	wg.Wait()
	t.Log(total)
}

文章来源地址https://www.toymoban.com/news/detail-649663.html

到了这里,关于编程小窍门: 一个简单的go mutex的小例子的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Golang】go编程语言适合哪些项目开发?

    前言 在当今数字化时代,软件开发已成为各行各业的核心需求之一。 而选择适合的编程语言对于项目的成功开发至关重要。 本文将重点探讨Go编程语言适合哪些项目开发,以帮助读者在选择合适的编程语言时做出明智的决策。 Go 编程语言适合哪些项目开发? Go是由Google开发

    2024年02月04日
    浏览(60)
  • Go面试题:锁的实现原理sync-mutex篇

    在Go中,主要实现了两种锁:sync.Mutex(互斥锁) 以及 sync.RWMutex(读写锁)。 本篇主要给大家介绍sync.Mutex的使用和实现原理。 在高并发下或多goroutine同时执行下,可能会同时读写同一块内存,比如如下场景: 输出的值预期是1000,实际是 948,965等,多次运行结果不一致。 之所以出

    2024年02月08日
    浏览(38)
  • 一个golang小白使用vscode搭建Ununtu20.04下的go开发环境

    先交代一下背景,距离正式接触golang这门语言已经有5年时间,平时偶尔也会用go写写工具和功能,但其实充其量就是语言小白,基本上就是按照教程配置好环境,按照需求写写逻辑,能跑起来就行了。golang随着这几年的变化,这门语言的变化还是非常大的,之前写过一篇《

    2024年01月22日
    浏览(58)
  • 【Go语言开发】简单了解一下搜索引擎并用go写一个demo

    这篇文章我们一起来了解一下搜索引擎的原理,以及用go写一个小demo来体验一下搜索引擎。 搜索引擎一般简化为三个步骤 爬虫:爬取数据源,用做搜索数据支持。 索引:根据爬虫爬取到的数据进行索引的建立。 排序:对搜索的结果进行排序。 然后我们再对几个专业名词做

    2024年02月16日
    浏览(35)
  • 分享一个项目:`learning_go_plan9_assembly`, 学习 golang plan9 汇编

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 近期在学习 golang plan9 汇编,总算基本做到了手写汇编,并整理了很多笔记。 plan9 汇编的资料少,难学,难用。可能也有想学习汇编的人会遇到与我一样的问题。 于是把

    2024年02月06日
    浏览(41)
  • 【Golang星辰图】数据管理利器:Go编程语言中的数据库和搜索引擎综合指南

    Go编程语言是一种强大、类型安全且高效的编程语言,它在处理数据库和搜索引擎方面有着广泛的应用。本篇文章将详细介绍几个Go编程语言中常用的数据库和全文搜索引擎,包括Go-bleve、Go-pgx、Go-leveldb/leveldb、Go-xorm、Go-mysql-driver和Go-bbolt/bbolt。对于每个工具,我们将介绍其功

    2024年03月26日
    浏览(48)
  • Go实现一个简单的烟花秀效果(附带源码)

    在 Go 语言中,要实现烟花秀效果可以使用 github.com/fogleman/gg 包进行绘图。以下是一个简单的例子: 首先,确保你已经安装了( 有时候需要梯子才可以安装 )  github.com/fogleman/gg 包: 然后,使用以下 Go 代码: 在这个例子中,我们使用 github.com/fogleman/gg 包创建一个图形上下文

    2024年01月23日
    浏览(31)
  • go入门实践四-go实现一个简单的tcp-socks5代理服务

    SOCKS是一种网络传输协议,主要用于客户端与外网服务器之间通讯的中间传递。协议在应用层和传输层之间。 本文使用先了解 socks 协议。然后实现一个socks5的tcp代理服务端。最后,进行抓包验证。 本文完整代码见仓库:laboratory/16-go-socks5 socks 协议相对http和tcp协议,还是比较

    2024年02月04日
    浏览(29)
  • 【Golang项目实战】用Go写一个学生信息管理系统,真的太酷啦| 保姆级详解,附源码——建议收藏

    博主简介: 努力学习的大一在校计算机专业学生,热爱学习和创作。目前在学习和分享:数据结构、Go,Java等相关知识。 博主主页: @是瑶瑶子啦 所属专栏: Go语言核心编程 近期目标: 写好专栏的每一篇文章 学习了Go的基础语法知识,如何巩固和提升呢?跟着瑶瑶子写一个

    2024年02月02日
    浏览(42)
  • 100天精通Golang(基础入门篇)——第15天:深入解析Go语言中函数的应用:从基础到进阶,助您精通函数编程!(进阶)

    🌷 博主 libin9iOak带您 Go to Golang Language.✨ 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批

    2024年02月12日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包