我是 Golang 的新手,开始使用 goroutines。我很好奇在不使用通道或互斥锁的情况下从另一个 goroutine 写入的数据结构中读取是否安全。在下面的示例中,events数组对 main 和 goroutine 可见,但 main 只读取它,而 goroutine 正在修改它。这被认为是安全的吗?var events = []string{}func main() { go func() { for { if len(events) > 30 { events = nil } event := "The time is now " + time.Now().String() events = append(events, event) time.Sleep(time.Millisecond * 200) } }() for { for i:=0; i < len(events); i++ { fmt.Println(events[i]) } time.Sleep(time.Millisecond * 100) fmt.Println("--------------------------------------------------------") }}
- 1 回答
- 0 关注
- 97 浏览
添加回答
举报
0/150
提交
取消