chan chan 模式 In Golang
package main
func main() {
done := make(chan int)
// 可以是chan chan、chan chan chan、chan chan chan chan。。。
// 只要脑子不混乱
outsideChannel := make(chan chan string)
//producer
go func() {
insideChannel := <-outsideChannel
insideChannel <- "hello"
}()
//consumer
go func() {
// chan里通信的内容是chan。r是consumer与producer之间通信的内容
// 由cc把r发送给producer,然后consumer开始读r的内容。producer收到r之后开始往里写内容,consumer开始继续网下走
insideChannel := make(chan string)
outsideChannel <- insideChannel
content := <-insideChannel
println("result from procedure:", content)
done <- 0
}()
// 阻塞到consumer给main信号
<-done
}
最后修改于 2022-07-14