V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  zjx20  ›  全部回复第 1 页 / 共 1 页
回复总数  3
2017-01-11 15:01:31 +08:00
回复了 sujin190 创建的主题 Go 编程语言 go 用 mgo 并发操作死锁
昨晚试过在 for 循环里面 clone ,然后在 test()里面调 close ,结果还是不行
for i := 0; i < 100001; i++ {
go test(session.Clone(), i)
}

刚刚又试了一下把 clone 也放到 test()里面,就顺利跑完了。
看来 clone 需要在使用的 goroutine 里面调才有效
2017-01-10 20:00:58 +08:00
回复了 sujin190 创建的主题 Go 编程语言 go 用 mgo 并发操作死锁
更新 1 :
加了-race 参数就能顺利跑完
go run -race test_mgo.go

更新 2 :
60 秒应该是 socket 超时,设置 session.SetSocketTimeout(35*time.Second) ,就会变成每 35 秒输出一条

感觉确实是 mgo 的问题,建议楼主去 github 提 issue
2017-01-10 19:41:08 +08:00
回复了 sujin190 创建的主题 Go 编程语言 go 用 mgo 并发操作死锁
@sujin190 测试了你的代码,确实跑不顺畅,到后面是每 60 秒输出一条。不知道 60 秒是什么梗
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2730 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 9ms · UTC 14:58 · PVG 22:58 · LAX 06:58 · JFK 09:58
Developed with CodeLauncher
♥ Do have faith in what you're doing.