是。由于您的频道已缓冲,可以保存1个值。主执行流程可以继续进行,而无需您的匿名goroutine读取您发送到
test通道的值,并且可以
test2在goroutine唤醒并读取通道上的值之前在通道上发送值
test。
因为您有时间,所以不太可能发生这种情况。Sleep()调用通常会给goroutine执行时间,但是并没有告诉您在机器非常繁忙,电源处于停电状态的情况下会发生什么情况。不幸的时光或其他您没有想到的事情。
如果您的
test通道未缓冲,则该
test <-true语句将阻塞,直到您的goroutine接收到该值为止,并且在
test2从该
test通道接收任何内容之前,该goroutine至少没有接收的可能。



