go - 可以使用切片作为共享内存吗?
问题描述
在这样的结构中使用切片是否可以:
type buffer struct {
values []int
mutex sync.RWMutex
}
我问是因为当我们追加到切片时,我们有可能将切片复制到内存中的新位置。
解决方案
在大多数 Go 编程中,人们会在没有性能问题的情况下分配切片,以防万一append
返回新内存,因为切片是参考值。
b.values = append(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()
}
推荐阅读
- python - 如何将pdf转换为数据框pandas python并提取值?
- javascript - 搜索栏功能,如何使变量保持不变
- python - 为什么要在这个 API 设计模式中使用回调?
- python - 如何解决 Heroku 部署问题?
- c - 如何打印结构的元素?
- arrays - Laravel Vue SPA:如何将由 axios 检索到的数组 prop 传递给子组件?
- leaflet - Leafletjs折线不显示弹出窗口
- r - 相关对图:组和密度散点图的不同点颜色
- javascript - 为什么我的脚本不能使用 django 在 html 中运行
- python - 如果 Python 中的循环停止工作,使用 jupyter?