美文网首页
go routine 使用外部变量问题

go routine 使用外部变量问题

作者: xcyzjs | 来源:发表于2022-04-26 10:28 被阅读0次
    for i := 0; i < 10; i++ {
        go func() {
            fmt.Println(i)
        }
    }

    time.Sleep(time.Second) // 10,10,10,10,...

使用 go vet 检查

// 修改
    for i := 0; i < 10; i++ {
        go func() {
                        i2 := i
            fmt.Println(i2)
        }
    }
// 或者(推荐)
    for i := 0; i < 10; i++ {
        go func(i int) {
            fmt.Println(i)
        }(i)
    }

    time.Sleep(time.Second) 

参考 https://www.jianshu.com/p/e5f328819d4b

相关文章

网友评论

      本文标题:go routine 使用外部变量问题

      本文链接:https://www.haomeiwen.com/subject/inycyrtx.html