gpt4 book ai didi

go - 一个 goroutine 从结构中读取而另一个 goroutine 正在修改它是否安全?

转载 作者:数据小太阳 更新时间:2023-10-29 03:44:31 29 4
gpt4 key购买 nike

更具体地说,在我的例子中,我有一个网络服务器和一个全局可访问的结构,网络服务器使用它来生成页面。我有另一个 Goroutine,它总是定期用新值更新该结构。这会引起问题吗?我是否需要实现一种机制来确保它在更新时不被读取?

最佳答案

不,这正是不安全的定义,会被 race detector 捕获如果你测试过它。您绝对需要同步访问,例如使用 sync.Mutex or sync.RWMutex .

如果始终拥有最新值并不重要,您还可以允许每个 goroutine 缓存结构的副本,然后每隔一段时间定期从“主”副本更新它们的副本经常。如果经常访问该结构,这有助于避免由于锁争用而导致的一些性能问题。

关于go - 一个 goroutine 从结构中读取而另一个 goroutine 正在修改它是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45696665/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com