我有一个在许多goroutine中共享的结构,如果可能的话,我想减少计算该结构上一个字段的次数。可能更容易显示:
chart: {
events: {
click: function() {
console.log(this.hoverPoint)
}
}
},
有没有安全的方法来完成此任务?这几乎就像我想要一个竞争条件,在这里我不介意它是否被多次写入,但是这样做的第一个线程应该防止随后的读取。一般而言,并发是新事物。
答案 0 :(得分:1)
在您的方法中,必须首先锁定,然后才能检查是否已设置IFS=":" read A B <<< $(echo ONE:TWO)
echo "$A"
ONE TWO
。例如:
Items
但是sync.Once
提供了更好,更快的选择。隐藏func (container *Container) loadContainer() {
container.mu.Lock()
defer container.mu.Unlock()
if container.Items != nil {
return
}
container.Items = loadItems()
}
字段也很明智,这样就不会意外引用它。导出的函数应负责初始化,并返回仅初始化一次的值:
Items