中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

golang單例模式實現的方法是什么

小億
83
2024-01-03 07:41:04
欄目: 編程語言

在Go語言中,可以通過如下方法實現單例模式:

  1. 基于sync.Once實現的單例模式:
package singleton

import "sync"

type singleton struct{}

var instance *singleton
var once sync.Once

func GetInstance() *singleton {
    once.Do(func() {
        instance = &singleton{}
    })
    return instance
}

在這個例子中,通過sync.Once實現了只執行一次的功能,保證了實例只會被創建一次。

  1. 基于sync.Mutex實現的單例模式:
package singleton

import "sync"

type singleton struct{}

var instance *singleton
var mu sync.Mutex

func GetInstance() *singleton {
    mu.Lock()
    defer mu.Unlock()

    if instance == nil {
        instance = &singleton{}
    }
    return instance
}

在這個例子中,通過sync.Mutex實現了互斥鎖,保證了實例的創建和獲取是線程安全的。

這兩種方法都可以實現單例模式,具體選擇哪種方式取決于實際需求和偏好。

0
同心县| 疏勒县| 长治市| 印江| 宕昌县| 比如县| 吉木萨尔县| 华宁县| 清水河县| 和政县| 米易县| 潼南县| 呼玛县| 兴海县| 界首市| 普定县| 尼勒克县| 蚌埠市| 兰考县| 陕西省| 滦南县| 南丰县| 安溪县| 富顺县| 兴仁县| 西安市| 乐业县| 东至县| 海伦市| 高清| 特克斯县| 改则县| 芜湖县| 民乐县| 安陆市| 阿拉善左旗| 灯塔市| 潮安县| 锡林浩特市| 达日县| 阳曲县|