jay's blog
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