为什么会出现死锁的问题? fatal error: all goroutines are asleep - deadlock!
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
for i := 0; i < 10; i++ { chs[i] = make(chan int) go test(chs[i]) }
加上一句代码
你要搞清楚。第一次运行 通道都给关闭了。肯定死了。
看错了。通道数组、
似乎不是这么玩的。我还真没见过谁玩 通道数组
package main
import ( "fmt"
"math/rand"
)
func test(ch chan int) {
ch <- rand.Int() //向channel中写入一个64位的随机数 close(ch)
}
func main() { chs := make([]chan int, 10) //直接创建10个的int类型通道的切片
for i := 0; i < 10; i++ { chs[i] = make(chan int) go test(chs[i]) } for _, ch := range chs { value := <-ch //阻塞等待退出信号 fmt.Println(value) }
`单行代码`
加上一句代码
你要搞清楚。第一次运行 通道都给关闭了。肯定死了。
看错了。通道数组、
似乎不是这么玩的。我还真没见过谁玩 通道数组
package main
import ( "fmt"
)
func test(ch chan int) {
}
func main() { chs := make([]chan int, 10) //直接创建10个的int类型通道的切片
}