【发布时间】:2017-02-14 23:56:12
【问题描述】:
假设我有以下代码:
a := []int{1,2,3}
i := 0
var mu = &sync.Mutex{}
for i < 10 {
go func(a *[]int) {
for _, i := range a {
mu.Lock()
fmt.Println(a[0])
mu.Unlock()
}
}(&a)
i++
}
数组是共享资源,正在循环中读取。如何保护循环头中的数组,我需要吗?还有必要将数组作为指针传递给goroutine吗?
【问题讨论】:
标签: arrays go concurrency locking mutex