V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Wangds  ›  全部回复第 1 页 / 共 2 页
回复总数  24
1  2  
@lucarfulllll 我感觉应该不用再加锁了
@liuxu 加了 Immutable: true 正常了,拜谢!!
@liuxu 我试试
@virusdefender 并发下确实会报 DATA RACE ,我看看楼下的方法
@virusdefender 我试试
破案了,代码增加了 gin 框架模式,在 gin 下就正常,在 fiber 下就异常。
感谢大家的帮助!
更新了一下:
不再缓存指针了;
代码放到单文件里了,init 函数初始化全局变量;
map 的 key 改为 id ;
担心 id 太长,现在从 1 自增;
加了读写锁,且测试加了延时;
现在代码精简了,创建请求只涉及创建,没有查询了;目前只有创建、查询两种请求操作;
通过`go run -race main.go`来执行程序,没有报任何异常;
字段异常修改的问题依然存在。

我在 main 方法的协程里直接测试,就一切正常,请求通过 gofiber 就会有问题。
@kiwi95 哇塞,我去看看
我下午再优化改一下,感觉受益良多
@anerevol 是的,当时是读、写都加了锁,当时用的 sync.RWMutex
@john2022 我试试
@wuhaoecho 我试试
@anerevol 创建方法里查,判断同名代码后加了个延时;测试的代码里每次创建、查询、循环之间都加了延时;
肉眼可看的一个一个蹦日志,也会出现问题,哭了
@anerevol 以前有个版本是加了锁的,也有这个问题。我给代码加个延时试试
@john2022 是要把 list 和 list2 放到 main 包里吗
@Maboroshii 我记得用 ID 也会变
@john2022 我再试试,当时好像也试过指针
@dcalsky 不是整个项目啊,是创建和查询的最小实现。
@pathletboy 有在协程里持续打印,发现是查询的一瞬间改变的,但是不知道为什么会改变
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2735 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 15ms · UTC 12:20 · PVG 20:20 · LAX 04:20 · JFK 07:20
Developed with CodeLauncher
♥ Do have faith in what you're doing.