1. 案例1,无缓冲信道导致死锁, -> 运行死锁 // 不设定容量创建的是无缓冲信道,在接收者未准备好之前信道处于阻塞状态, package main func main(){ // 例如本案例:fatal error: all goroutines are asleep - deadlock! // sch := make(chan string) // sch <- "string" // fmt.Println(<-sch) // 处理方法,使用双协程,并且接收者在发送者就绪之前,-> 运行正常 // sch := make(chan string) // // go func() { // fmt.Println(<-sch) // 接收者就绪 // }() // // sch <- "string" // time.Sleep(time.Second) } 2.案例2,改用有缓冲的信道, -> 运行正常 package main func main() { // 案例2,改用有缓冲的信道, -> ...