Go语言中文网 为您找到相关结果 2

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竞争导致环...阅读全文

博文 2016-03-17 01:00:01 lyuavery