示例:
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15  | 
						func main() { 	c := make(chan int , 1)         go func() { // 消费者            <-c         }() 	go func() {  // 如果没有这个协程,就得报deadlock而终止程序 		i := 0 		for { 			i++ 		} 	}() 	c <- 1 	c <- 1         c <- 1 }  | 
					
如上程序:
如果没有第二个go协程,那么第一个协程是消费者,main协程是生产者,消费者死去后,就会出现deadlock错误; 原以为是runtime检测到我们在写一个没人消费的chan感到奇怪而报错,实际上不是的,甚至也不是写不进去而报错,而是,没有一个协程是能被执行的了(就好比陈佩斯的小偷中说的那样,这大半夜的也每个车让我指挥指挥),所以,runtime才感觉很迷茫,就报了个deadlock; 如果有第二个协程在的话,runtime会很高兴地去执行第二个协程的,真的不在意那个chan是否有人消费的。