14.12 链式协程
...小于 1 分钟
14.12 链式协程
package chapter_14
import "fmt"
const N = 100000
func mainChanning() {
	leftmost := make(chan int)
	var left, right chan int = nil, leftmost
	for i := 0; i < N; i++ {
		left, right = right, make(chan int)
		go f(left, right)
	}
	right <- 0
	x := <-leftmost
	fmt.Println(x) // 100000
}
func f(left, right chan int) {
	left <- 1 + <-right
}
right <-0: 启动链式协程的计算。 因为无缓冲通道的阻塞,函数f在最右侧的通道可用之前不会执行。 当最右侧通道(通道链尾)可用时,开始执行x := <-leftmost: 等待协程链完成
 Powered by  Waline  v2.15.2
