我想与go流合作,我有几个“愚蠢”的问题。一个基本的Golang流(通道)死锁
我已经做了一个基本的流示例与字节限制范围,这里是工作代码,这里是我的问题。
1 - 为什么此代码在新行显示1和2?为什么它不显示12?从字节限制流中移除字节的第一次平安吗? (?但是,我们如何能够推动2号到流时,我们已经推1号),我只是不明白它
package main
import "fmt"
func main() {
ch := make(chan int, 2)
ch <- 1
ch <- 2
fmt.Println(<-ch)
fmt.Println(<-ch)
}
It shows:
1
2
2的问题 - 我曾尝试使用此代码玩理解如何它的工作原理,我已经删除了字节范围,我得到了死锁错误。为什么会发生?谢谢!
fatal error: all goroutines are asleep - deadlock!
goroutine 1 [chan send]:
main.main()
/tmp/sandbox557775903/main.go:7 +0x60
死锁错误代码:
package main
import "fmt"
func main() {
ch := make(chan int)
ch <- 1
ch <- 2
fmt.Println(<-ch)
fmt.Println(<-ch)
}
感谢您的帮助!对于原始问题抱歉。
谢谢你的回答!这对我帮助很大 – Velidan