使用一种sync.Map是否安全?

时间:2018-01-25 17:10:00

标签: go concurrency

我想定义sync.Map的类型,以便我可以进行一些类型检查并基本上隔离接口{}使用。这样使用sync.Map是否安全?

type WalletMap sync.Map

var walletMap = &WalletMap{}

func (m *WalletMap) LoadOrStore(key string, value *CoinMap) (actual *CoinMap, loaded bool) {
    itf, ok := (*sync.Map)(m).LoadOrStore(key, value)
    if !ok {
        return nil, ok
    }
    return itf.(*CoinMap), ok

}

func (m *WalletMap) Load(key string) (actual *CoinMap, loaded bool) {
    itf, ok := (*sync.Map)(m).Load(key)
    if !ok {
        return nil, ok
    }
    return itf.(*CoinMap), ok

}

0 个答案:

没有答案