2025-07-16 Golang中的once.Do:实现单例模式的优雅方式 Golang中的once.Do:实现单例模式的优雅方式 什么是sync.Once?在Golang的并发编程中,sync.Once是一个简单但极其强大的结构体,它保证某个操作在并发环境下只执行一次。这个特性使其成为实现单例模式的理想选择。go type Once struct { done uint32 m Mutex }从结构上看,Once非常简单,仅包含一个标志位和一个互斥锁。但这种简约的设计背后却蕴含着高效的并发控制机制。once.Do的核心作用once.Do(f func())方法接收一个无参数无返回值的函数作为参数,并确保: 无论有多少个goroutine同时调用,f函数只被执行一次 当f执行完成后,后续所有调用都会立即返回而不执行 这种保证是线程安全的 这种特性非常适合用于资源初始化、配置加载等只需要执行一次的场景。实现单例模式的经典方式在Golang中,利用once.Do实现单例模式既简洁又安全。下面是一个完整的示例:go package singletonimport ( "sync" )type singleton struct { // 单例对象的字段 }var instance... 2025年07月16日 2 阅读 0 评论