package main
import (
"fmt"
)
var c = make(chan int, 50)
var count = 0
func main() {
for i := 0; i < 5; i++ {
go consumer(i)
}
for i := 0; i < 1000; i++ {
c <- i
}
/** here **/
fmt.Println(count)
}
func consumer(index int) {
for target := range c {
fmt.Printf("no.%d:%d\n", index, target)
count++
}
}
请问代码中注释处,如何才能确保c中的数据已经全部被消费?(默认time.Sleep()无法保证,不能使用)
如果不能确保的话,那么主线程会提前退出,部分数据就会被抛弃了。
呼啦一阵风
慕标琳琳
相关分类