我在互联网上找到了很多关于互斥锁的教程,然后在我尝试构建自己的示例之后。看看我下面的代码片段。package mainimport ( "fmt" "sync" "time")func main() { thread := new(sync.Mutex) y := 0 for i := 0; i < 10; i++ { go func() { y = i thread.Lock() fmt.Println(y) thread.Unlock() }() } time.Sleep(100000)}作为输出,我只有 10 个,但我的目标是获得 1、2、3、4...10 个。我怎样才能做到这一点?或者我的样本没有任何意义?
3 回答
猛跑小猪
TA贡献1858条经验 获得超8个赞
尝试 :
for i := 0; i < 10; i++ {
go func(j int) {
thread.Lock()
fmt.Println(j)
thread.Unlock()
}(i)
}
这就是为什么。
- 3 回答
- 0 关注
- 181 浏览
添加回答
举报
0/150
提交
取消