sync.Once.Do(f func())
sync.Once.Do(f func())是一个挺有趣的东西,能保证once只执行一次,无论你是否更换once.Do(xx)这里的方法,这个sync.Once块只会执行一次。
- package main
- import (
- "fmt"
- "sync"
- "time"
- )
- var once sync.Once
- func main() {
- for i, v := range make([]string, 10) {
- once.Do(onces)
- fmt.Println("count:", v, "---", i)
- }
- for i := 0; i < 10; i++ {
- go func() {
- once.Do(onced)
- fmt.Println("213")
- }()
- }
- time.Sleep(4000)
- }
- func onces() {
- fmt.Println("onces")
- }
- func onced() {
- fmt.Println("onced")
- }
整个程序,只会执行onces()方法一次,onced()方法是不会被执行的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2016-03-17 mysql导出excel文件的几种方法
2016-03-17 QT连接多种数据库f方法及测试
2015-03-17 html css
2015-03-17 java.lang.OutOfMemoryError: Java heap space错误及处理办法
2015-03-17 java中Date与String的相互转化