登录
首页 >  Golang >  Go问答

单一变量的例程完整性访问是否保证安全性?

来源:stackoverflow

时间:2024-02-26 13:30:23 393浏览 收藏

各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题《单一变量的例程完整性访问是否保证安全性?》,很明显是关于Golang的文章哈哈哈,其中内容主要会涉及到等等,如果能帮到你,觉得很不错的话,欢迎各位多多点评和分享!

问题内容

给出这样的代码:

type Test struct {
    V int
}

func (t *Test) t() {
    t.V += 1
}

func main() {

    t := Test{}
    for i := 1; i <= 1000000; i++ {
        go t.t()
    }

    for {
        fmt.Println(t.V)
        time.Sleep(3 * time.Second)
    }
}

我希望大家清楚我为什么要做这个测试。结果永远不会是 1000000。它总是打印小于 1000000 的数字。那么,我只能使用 gochannels 来解决它吗?

为什么我的结果不是 1000000 ?如何获得1000000?


解决方案


没有。一切活泼的东西都不安全。在任何情况下。如果是单个变量,则不是;如果被奇数个 goroutine 访问,则不是;如果是星期一,则不是。从来没有。

以上就是《单一变量的例程完整性访问是否保证安全性?》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>