【发布时间】:2016-01-13 07:05:43
【问题描述】:
这是一个例子:
func main() {
c := make(chan int)
i := 0
go goroutine(c)
c <- i
time.Sleep(10 * time.Second)
}
func goroutine(c chan int) {
for {
num := <- c
fmt.Println(num)
num++
time.Sleep(1 * time.Second)
c <- num
}
}
我在 goroutine 内部尝试做的是从通道接收数字,打印它,递增,然后在一秒钟后将它发送回通道。之后我想重复这个动作。
但结果,操作只进行一次。
输出:
0
我做错了吗?
【问题讨论】: