您好,匿名用户

使用goroutines时,直接使用外部变量 或 进行值传递 哪一个更安全?有什么区别?

0 投票

使用goroutines时,直接使用外部变量 或 进行值传递 哪一个更安全?有什么区别?

相关代码

func main() {
    wg := sync.WaitGroup{}
    wg.Add(2)
    val := 10
    go func() { //无形参
        defer wg.Done()
        val = 20 //直接修改外部val值
        fmt.Println(val)
    }()
    go func(val int) { //使用形参,值传递
        defer wg.Done()
        val = 30 //修改值传递
        fmt.Println(val)
    }(val)
    wg.Wait()
}
用户头像 提问 6月18日 @ 坑爹 上士 (1,753 威望)
分享到:

你的回答

隐私保护: 您的邮箱仅用于发送系统通知。
请输入验证码:
    图片验证码看不清?
登录注册后不会被要求输入验证码。

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

IT技术交流群 - 随意问
欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...