美文网首页
Go的单例模式

Go的单例模式

作者: 本分撸码投资 | 来源:发表于2021-03-07 15:05 被阅读0次
    package singleton
    
    import (
        "fmt"
        "sync"
        "testing"
        "unsafe"
    )
    type Singleton struct {
    
    }
    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.Println("obj")
                fmt.Printf("%x\n", unsafe.Pointer(obj))
                wg.Done()
            }()
        }
        wg.Wait()
    }
    
    

    相关文章

      网友评论

          本文标题:Go的单例模式

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