golang的第一个deadlock
Posted Avery-Lyu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang的第一个deadlock相关的知识,希望对你有一定的参考价值。
package main
import (
"fmt"
"math/rand"
)
func push(c chan []int) {
var slice []int
for num, i := rand.Intn(5)+1, 0; i <= num; i++ {
slice = append(slice, rand.Intn(100))
}
c <- slice
}
func main() {
c := make(chan []int)
go push(c)
// go push(c)
x, y := <-c, <-c
fmt.Println("x:", x, "y:", y)
}
deadlock原因:
chanel缓冲里的资源只有一个,x和y竞争导致环路
以上是关于golang的第一个deadlock的主要内容,如果未能解决你的问题,请参考以下文章