golang单例模式实现的方法是什么

   2025-02-13 6210
核心提示:在Go语言中,可以通过如下方法实现单例模式:基于sync.Once实现的单例模式:package singletonimport synctype singleton struct

在Go语言中,可以通过如下方法实现单例模式:

基于sync.Once实现的单例模式:
package singletonimport "sync"type singleton struct{}var instance *singletonvar once sync.Oncefunc GetInstance() *singleton {    once.Do(func() {        instance = &singleton{}    })    return instance}

在这个例子中,通过sync.Once实现了只执行一次的功能,保证了实例只会被创建一次。

基于sync.Mutex实现的单例模式:
package singletonimport "sync"type singleton struct{}var instance *singletonvar mu sync.Mutexfunc GetInstance() *singleton {    mu.Lock()    defer mu.Unlock()    if instance == nil {        instance = &singleton{}    }    return instance}

在这个例子中,通过sync.Mutex实现了互斥锁,保证了实例的创建和获取是线程安全的。

这两种方法都可以实现单例模式,具体选择哪种方式取决于实际需求和偏好。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言