【发布时间】:2014-02-07 07:15:27
【问题描述】:
我有一个使用频道数组的任务。
我不明白。为什么这不起作用?
package main
import "fmt"
func run() {
chann[0] <- 1
}
var chann = make([]chan int, 2)
func main() {
go run()
obj := <- chann[0]
fmt.Println(obj)
}
【问题讨论】:
我有一个使用频道数组的任务。
我不明白。为什么这不起作用?
package main
import "fmt"
func run() {
chann[0] <- 1
}
var chann = make([]chan int, 2)
func main() {
go run()
obj := <- chann[0]
fmt.Println(obj)
}
【问题讨论】:
您已经初始化了通道数组,但没有初始化通道本身。
至于为什么会死锁;这是因为未初始化或已设置为 nil 的通道值将始终阻塞。 (见article)
【讨论】: