我在一个对象中定义了一个变量(r.something)func (r *Runner) init() { r.something = make(map[string]int) r.something["a"]=1 go r.goroutine()}而 r.goroutine 使用存储在 r.something 中的值而没有同步。除了 r.goroutine() 之外,没有其他人会读/写这个值不同步是否安全?换句话说:我想重用goroutine 启动之前在其他地方初始化的 goroutine 中的一些变量。那安全吗?附加问题:在 r.goroutine() 完成后,我希望能够从其他地方使用 r.something(没有与其他 goroutine 的读/写重叠)。它也安全吗?
3 回答
大话西游666
TA贡献1817条经验 获得超14个赞
如果在这个变量上不存在不同 go-routine 的读写操作重叠的情况,那么你是对的:不需要任何同步。
正如您所提到的,该变量是在您的 go-routine 开始之前初始化的,您实际上是安全的。
- 3 回答
- 0 关注
- 206 浏览
添加回答
举报
0/150
提交
取消