type MyMap struct {
Data map[int]string
ch chan func()
}
func NewMyMap() *MyMap {
m := &MyMap{
Data: make(map[int]string),
ch: make(chan func()),
}
go func() {
for {
(<-m.ch)()
}
}()
return m
}
func (m *MyMap) add(num int, data string) {
m.ch <- func() {
m.Data[num] = data
}
}
func (m *MyMap) del(num int) {
m.ch <- func() {
delete(m.Data, num)
}
}
func (m *MyMap) find(num int) (data string) {
m.ch <- func() {
if res, ok := m.Data[num]; ok {
data = res
}
}
return
}
golang中map使用channel串行化多读多写
猜你喜欢
转载自blog.csdn.net/Edu_enth/article/details/85235490
今日推荐
周排行