go语言中chan的死锁问题。

package main

import "fmt"

func main() {
    out := make(chan int)
    out <- 2

    fmt.Println(<-out)
}

上面的代码一运行就有错
fatal error:all goroutines are asleep-deadlock

如果将chan的初始化改为

out:=make(chan int, 1)就可以。

为什么?

查看回复