美文网首页
Go语言之单例

Go语言之单例

作者: Jabir_Zhang | 来源:发表于2019-08-17 07:18 被阅读0次

单例模式是比较常用的设计模式,现在用Go简单的实现一个单例

type Singleton struct {
    data string
}

var singleInstance *Singleton
var once sync.Once

func GetSingletonObj() *Singleton {
    once.Do(func() {
        fmt.Println("Create Obj")
        singleInstance = new(Singleton)
    })
    return singleInstance
}

func TestGetSingletonObj(t *testing.T) {
    var wg sync.WaitGroup
    for i := 0; i < 10; i++ {
        wg.Add(1)
        go func() {
            obj := GetSingletonObj()
            fmt.Printf("%X\n", unsafe.Pointer(obj))
            wg.Done()
        }()
    }
    wg.Wait()
}
---------------打印结果---------------
Create Obj
C000064170
C000064170
C000064170
C000064170
C000064170
C000064170
C000064170
C000064170
C000064170
C000064170

上述代码可见,打印出来的对象都同一个,也就是说此对象只被创建了一次。

相关文章

  • Go语言之单例

    单例模式是比较常用的设计模式,现在用Go简单的实现一个单例 上述代码可见,打印出来的对象都同一个,也就是说此对象只...

  • 不管你年底换不换工作,了解下单例模式

    1. 单例模式 什么是单例模式?简言之就是确保定义为单例模式的类在程序中有且只有一个实例。单例模式的特点: 只有一...

  • 单例模式

    一、单例模式介绍 单例模式简而言之就是只有一个实例化对象的类,初学者可以通过单例 模式的设计更好的理解面向...

  • 单例模式(Go)

    单例模式是23种面向对象的设计模式之一。在实际应用中,涉及到配置或资源管理的对象,都应该考虑单例模式。广义上讲,只...

  • Go单例模式

    单例模式回顾 以前在做java的时候,经常会用到设计模式,如单例模式、工厂模式、观察者模式等。其实设计模式和语言无...

  • Go语言设计模式(1)单例模式

    Go语言设计模式(1)单例模式 单例模式的定义 个人认为单例模式是23种设计模式中最简单也最好理解的一种,定义如下...

  • Go语言:单例模式

    转载至 https://www.yuque.com/docs/share/17c247e8-961d-4cb1-a...

  • Go的单例模式

  • go设计模式代码实现

    go 设计模式代码实现 单例模式 代码实现 type singleton struct{} var ins *si...

  • iOS开发 单例使用问题总结

    编辑前语 单例(Singletons),是Cocoa的核心模式之一。在iOS上,单例十分常见,比如:UIAppli...

网友评论

      本文标题:Go语言之单例

      本文链接:https://www.haomeiwen.com/subject/yifhsctx.html