【发布时间】:2020-02-29 00:10:55
【问题描述】:
我正在go 中练习/试验一些同步机制。
为什么最后一次for 迭代未能将缓冲通道valchan 保存的值分配到mysl 切片中?
错误是
./myprog.go:28:7: := 左侧的非名称 mysl[i]
package main
import (
"sync"
)
const NUM_ROUTINES = 2
func sendValue(c chan string) {
c <- "HelloWorld"
}
func main() {
valchan := make(chan string, NUM_ROUTINES)
var wg sync.WaitGroup
wg.Add(NUM_ROUTINES)
for i := 0; i < NUM_ROUTINES; i++ {
go func() {
sendValue(valchan)
wg.Done()
}()
}
wg.Wait()
mysl := make([]string, 2, 2)
for i := 0; i < NUM_ROUTINES; i++ {
mysl[i] := <-valchan
}
}
【问题讨论】:
标签: go synchronization channel