登录
首页 >  Golang >  Go问答

能够使用切片来实现共享内存吗?

来源:stackoverflow

时间:2024-02-20 12:54:22 423浏览 收藏

对于一个Golang开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《能够使用切片来实现共享内存吗?》,主要介绍了,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

问题内容

在这样的结构中使用切片可以吗:

type buffer struct {
    values []int
    mutex sync.RWMutex
}

我问这个问题是因为当我们附加到切片时,我们有可能会将切片复制到内存中的新位置。


正确答案


在大多数 go 编程中,由于切片是参考值,因此人们会在 append 返回新内存的情况下将切片重新分配回来,而无需考虑性能。

b.values = 附加(b.values, i)

type buffer struct {
    values []int
    mutex sync.RWMutex
}

func (b *buffer) Append(i int) {
    b.mutex.Lock()
    b.values = append(b.values, i)
    b.mutex.Unlock()
}

好了,本文到此结束,带大家了解了《能够使用切片来实现共享内存吗?》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

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