求解,go语言线程
测试了一下go的channel,不close的时候,感觉应该不会报错,但是运行提示死锁了,为什么,求解?换成有缓冲的channel也是报死锁的错误!!!!!!!
package main
import (
"fmt"
)
func main() {
channel:= make(chan int)
go func() {
for i := 0; i < 5; i++ {
ch <- i
fmt.Println(i)
}
//close(channel)
}()
for {
if num, ok := <-channel; ok == true {
fmt.Println("num=", num)
} else {
break
}
}
}