亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
唐河县| 新余市| 四子王旗| 南部县| 县级市| 息烽县| 阜南县| 思南县| 延边| 晋江市| 大新县| 石林| 万全县| 来宾市| 新丰县| 都江堰市| 资讯| 日土县| 阳东县| 新兴县| 公安县| 成武县| 永修县| 龙胜| 县级市| 邵阳县| 宁武县| 昌江| 平原县| 本溪| 南漳县| 邮箱| 龙游县| 洱源县| 长治市| 庆云县| 特克斯县| 金湖县| 广安市| 甘肃省| 抚顺县|