Go1.18泛型实现并发安全的map
使用go泛型失效并发安全的map结构

使用go泛型失效并发安全的map结构

package mut

import (
	"sync"
)

type Map[K, V comparable] struct {
	mu sync.RWMutex
	values map[K]V
}

func (m *Map[K, V]) Put(key K, value V) {
	m.mu.Lock()
	m.values[key] = value
	m.mu.Unlock()
}

func (m *Map[K, V]) Get(key K) V {
	var v V
	m.mu.RLock()
	v = m.values[key]
	m.mu.RUnlock()
	return v
}

func NewMap[K, V comparable]() *Map[K, V] {
	m := &Map[K, V]{}
	m.values = make(map[K]V)
	return m
}

最后修改于 2022-04-26

此篇文章的评论功能已经停用。