누군가가 설명 할 수 있습니까? 채널이 버퍼링되면 프로그램이 fatal_error로 종료되지 않는 이유는 무엇입니까?버퍼링/비 버퍼링 채널
언 버퍼 채널
package main
func main() {
c := make(chan int)
c <- 3
}
fatal error: all goroutines are asleep - deadlock!
버퍼 채널
package main
func main() {
c := make(chan int, 1)
c <- 3
}
[no output]
Program exited.
감사합니다!
나는 생각한다 버퍼링 된 채널과 버퍼되지 않은 채널의 차이 때문입니다. 버퍼링 된 채널에서 송신자는 수신자 (이 경우 자체)가 데이터를 수신 할 때까지 대기합니다. 그러나 나는 확실하지 않다 .. –
가능한 [(chan bool)은 make (chan bool, 1)과 어떻게 다르게 동작 하는가?] (http://stackoverflow.com/questions/20041392/how-does-makechan) -bool-behave-differently-from-makechan-bool-1) – Matt