有别的类型可以替代么?实现类似下面的功能
tmp,_ := testlist.Load(2)
tmp.(UserInfo).Name = "test55"
1
xkeyideal 2021-02-09 10:18:50 +08:00
仅限于这两行代码,先想想有没有并发问题
|
2
virusdefender 2021-02-09 10:30:08 +08:00
给自己的 map 加个锁就行吧,你这样写可能还会有竞争
|
3
dongtingyue OP @xkeyideal sync.Map 不支持 load 后直接修改,只是示例下。
|
4
dongtingyue OP @virusdefender 还有别的方法么?相当于存用户位置,经常改变和读取全部用户位置这样。
|
5
xkeyideal 2021-02-09 17:22:37 +08:00
@dongtingyue 没有什么好办法,sync.Map 的适用场景是读多写少,可以看看压测对比,性能没有优势的;你这种需求本身只能拿出来修改
|
6
dbskcnc 2021-02-09 19:30:11 +08:00 via Android
a8m/syncmap 挺好用
|
7
sdh 2021-02-09 20:11:16 +08:00 via Android
存指针就好*UserInfo
|
8
Dongxiem 2021-02-09 20:45:08 +08:00
如楼上所说,如果是写多的情况不应该使用 sync.map 啊,尝试使用 sync.mutex 吧!
|