欢迎访问Ningto's博客

Menu
  • 首页
  • 归档
  • 关于
  • 书签
  • 必应壁纸
  • IT聚合
  • 工具
    • 我的工具列表
    • 我的网盘
    • 必应每日壁纸API
    • Html转Markdown
    • 仙尘光标
Menu

golang 单例模式

最后更新 2021-02-26 01:35:53   阅读量 1763

单例模式(Singleton Pattern)是最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

要保证线程安全

package main

import (
    "fmt"
    "sync"
    "time"
)

type Singleton struct {
}

var singleton *Singleton
var singletonOnce sync.Once

func Instance() *Singleton {
    singletonOnce.Do(func() {
        singleton = &Singleton{}
    })
    return singleton
}

func (s *Singleton) print() {
    fmt.Printf("address: %p\n", s)
}

func main() {
    Instance().print()
    Instance().print()
    go Instance().print()
    go Instance().print()
    time.Sleep(100 * time.Millisecond)
}
(转载本站文章请注明作者和出处:泞途 - ningto.com)

下一篇 – golang 中介者模式
上一篇 – win32应用程序内存不足

  1. Go
  2. Design

toningto@outlook.com

标签云

Design Shell Web Windows Qt Database React Bug Node.js Android Mac Go ChatGPT Java Others Tips Javascript IOS Python MQ Linux C/C++ Tools Mobile Boost Life MongoDB Product

推广链接

【腾讯云】云产品限时秒杀,爆款1核2G云服务器,首年99元

多谢支持,用了好几年,服务很稳定支持多设备!

其他

文章RSS

Copyright © 2016 Welcome To Ningto Blog | 鄂ICP备17003086号-2