Go语言中Once如何使用
发表于:2024-11-29 作者:千家信息网编辑
千家信息网最后更新 2024年11月29日,Go语言中Once如何使用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。sync.Once是sync包中的一个对象,它只
千家信息网最后更新 2024年11月29日Go语言中Once如何使用
Go语言中Once如何使用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
sync.Once是sync包中的一个对象,它只有一个方法Do,这个方法很特殊,在程序运行过程中,无论被多少次调用,只会执行一次。
1.适用场景:
在一个进程之中,如果一个函数里面的一部分代码,希望在很多协程都执行的时候,只被执行一次,那么Once便起到了作用。例如:初始化进程中的共享内存,它只希望被该进程初始化一次,其他协程不需要初始化操作。
例子:
结果分析:
从上面的输出结果可以看出,使用了once.Do之后,onceBody()函数中的代码只被调用了一次。其他的协程依然还在运行,但是并没有去执行onceBody()函数中的代码。
2. 源码如下所示:
Once的数据结构和函数实现如下所示:
备注:巧妙之处,doSlow函数中,计数器done的自增操作是写到了defer函数中,原因就是defer中的函数就算在panic的时候,也会被执行,这样就可以有效的避免panic的时候,Do函数的计数器失效,导致其他的协程会在调用一次f()中的代码。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
函数
代码
时候
进程
方法
结果
计数器
帮助
运行
语言
巧妙
有效
清楚
特殊
之中
作用
例子
内存
内容
原因
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
qq群服务器正在维护
网络安全法123审稿
2020网络安全宣传周网站
公安大学网络安全排名
怎么才可以找到软件开发者
康力电梯轿厢通讯板怎么进服务器
台州学软件开发总结
数据库原理投影的定义
日本有网络安全信息法
互联网科技app
杭州利格网络技术有限公司
东华软件开发有限公司西安
sony电视机找不到网络服务器
mcpe服务器js
会稽源连接数据库
mac能用sql数据库
服务器命令行查看日志
关于网络安全为人民的文章素材
2016阿里网络安全大会
戴尔r740服务器内存条
中国网络安全集训
金蝶k3数据库无法打开
湖北地级市网络安全协会
网络安全隔离 标准
社会责任数据库上线时间
郑州市福珠网络技术有限公司
神武4服务器经验
帝国时代二无法连接至多人服务器
搭建数据库用什么
疫情期间开展网络安全巡查工作