转自:go语言:sync.Once的用法_Shoper的博客-CSDN博客_sync.onece(略有修改)
sync.Once.Do(f func())能保证once只执行一次,无论你是否更换once.Do(xx)这里的方法,这个sync.Once块只会执行一次。即使被循环调用,或者替换Do()里面的函数块,也只会执行第一次,后续的调用都不会执行。
package mainimport ("fmt""sync""time"
)var once sync.Oncefunc main() {for i, v := range make([]string, 10) {once.Do(onces) // 只有第一次会执行,后续的循环都不会执行 fmt.Println("count:", v, "---", i) // 执行10次}for i := 0; i < 10; i++ {go func() {once.Do(onced) // 不会被执行fmt.Println("213") // 会执行10次}()}time.Sleep(time.Second * 2)
}
func onces() {fmt.Println("onces")
}
func onced() {fmt.Println("onced")
}

go语言:sync.Once的用法(转)相关推荐

  1. Go sync.WaitGroup的用法

    介绍 经常会看到以下了代码: package mainimport ("fmt""time" )func main(){for i := 0; i < 1 ...

  2. php函数find的用法,c语言find函数的用法详解

    c语言find函数的用法详解 C语言之find()函数 find函数用于查找数组中的某一个指定元素的位置. 比如:有一个数组[0, 0, 5, 4, 4]: 问:元素5的在什么位置,find函数 返回 ...

  3. Go语言的管道Channel用法

    本文实例讲述了Go语言的管道Channel用法.分享给大家供大家参考.具体分析如下: channel 是有类型的管道,可以用 channel 操作符 <- 对其发送或者接收值. ch <- ...

  4. 【C 语言】const 关键字用法 ( 常量指针 - const 在 * 左边 - 修饰数据类型 - 内存不变 | 指针常量 - const 在 * 右边 - 修饰变量 - 指针不变 )

    文章目录 一.const 普通用法 二.常量指针 ( 指向 常量 的指针 | 被指向的内存不能被修改 ) 三.指针常量 ( 指针不能被修改 ) 三.指向 常量 的 指针常量 四.const 在 * 左 ...

  5. C语言入门之指针用法教程

    C语言入门之指针用法教程 这篇文章主要介绍了C语言入门之指针用法教程,主要对C语言中指针的本质及常见用法做了较为通俗易懂的分析,是后续深入学习C语言的基础,需要的朋友可以参考下 undefined u ...

  6. c语言中的指针语法,C语言中指针的用法介绍

    C语言中指针的用法介绍 for(int i=0;i { num+=*s;s++; } return num; ) 这个例子中的函数 fun统计一个字符串中各个字符的 ASCII 码值之和.前面说了,数 ...

  7. .sync的一个用法

    面试时,有人问了我修饰符是什么,就是一个点后面加一个单词,我当时还以为是什么文件夹后缀呢.很是尴尬 这里主要学习下.sync的一个用法 假设下场景: 这里有一个父组件,父组件中有个money,需要传到 ...

  8. C语言“fread”函数的用法?

    C语言"fread"函数的用法为"size_tf read(void *buffer,size_t size,size_t count,FILE *stream)&quo ...

  9. c语言do while语句用法6,c语言do while的用法

    循环结构是结构化程序设计的三种基本结构之一.下面小编就跟大家分享下c语言do while的用法. do-while语句的一般形式为: do 语句 while(表达式); 这个循环与while循环的不同 ...

  10. Unity 3D开发-C#脚本语言的一些基础用法

    Unity 中C#语言的一些基础用法 本文提供全流程,中文翻译. Chinar坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 Lerp -- ...

最新文章

  1. 从 Blast2GO 本地化聊一聊 Linux 下 MySQL 的源码安装
  2. php PDO php.ini
  3. php中的类 对象的方法的区别,php中类和对象的区别是什么
  4. 样条之贝塞尔(Bezier)
  5. SparkStreaming 异常:java.lang.NoSuchMethodError: scala.Predef scope()Lscala/xml/TopScope
  6. JavaScript 演练(8). 对象成员、类成员(原型、非原型)
  7. fisco bcos应用开发(一) springboot报错 Error reading resource
  8. 检测PYthon标识符合法性脚本
  9. kux格式怎么转换成mp3_优酷mac版怎么转码,如何将kux格式转成mp4格式
  10. PLC编程语言你知道多少
  11. 轻量级linux桌面环境,Linux发行版最为轻量级的桌面环境之一Xfce 桌面
  12. python的display显示_Python display.display方法代码示例
  13. 如何评价一个开源项目(一)--活跃度
  14. 51单片机简单计时器
  15. 【蓝桥杯技巧篇】处理日期相关问题详解
  16. JavaScript Code在线编辑器--JSEditor
  17. App地推效果统计,自动业绩结算
  18. java中怎么编写围棋对弈,TPWEIQI : JAVA 网络围棋对弈系统
  19. PAT(A) 1127. ZigZagging on a Tree (30)
  20. 数字IC设计 FPGA——再谈加法器设计(使用Verilog 原语 进行四位加法器设计)

热门文章

  1. JavaScript中定义结构体一维二维多维数组
  2. 扑克牌发牌游戏python_Python随机扑克牌生成器游戏
  3. 报错error C3872: '0x3000': this character is not allowed in an identifier
  4. 低功耗基础概念——Level Shifter cell
  5. 12.测试字体的练习
  6. K3 ERP 系统财务管理 - 账结法、表结法
  7. python操作系统接口错误_Python-接口自动化(四) - 许小猪 - 博客园
  8. WinodwsServer账户登录密码永不过期
  9. 读取.xls文件报错:XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b‘MIME-Ver
  10. 共享远程计算机文件夹,怎么远程访问共享文件夹