你这个例子跟chan没啥出队,入队的顺序没啥关系。这两个例子的区别仅仅是goroutine调度执行的顺序不一样而已。

第一个例子主协程打印语句一定在子协程之后,因为你这里的chan是no buffer的,往里面push元素是阻塞的。所以整体看来一定是入队先执行

第二个例子的关键在于还没等子协程打印呢,程序已经exit了 , 因为主函数已经结束了 。

关于golang 的协程,channel 可以看这篇文章:


奇伢云存储,主要专研云存储,golang技术。