包csp 导入( “fmt” “同步” “测试” )/*函数dataProducer (ch成龙int, wg * sync.WaitGroup) { 去func () { 我:=0;我& lt;10;我+ + { ch & lt;——我 } wg.Done () }() } func dataReceiver (ch成龙int, wg * sync.WaitGroup) { 去func () { 我:=0;我& lt;10;我+ + { 数据:=& lt; ch fmt.Println(数据) } wg.Done () }() } func TestChannelClose (t * testing.T) { 陈ch:=(int) var wg sync.WaitGroup wg.Add (1) dataProducer (ch, wg) wg.Add (1) dataReceiver (ch, wg) wg.Wait () } */func dataProducer (ch成龙int, wg * sync.WaitGroup) { 去func () { 我:=0;我& lt;10;我+ + { ch & lt;——我 } 关上(ch)//没有加closepanic了 wg.Done () }() } func dataReceiver (ch成龙int, wg * sync.WaitGroup) { 去func () { 为{ 如果数据吧:=& lt; ch;好{ fmt.Println(数据) 其他}{ 打破 } } wg.Done () }() } func TestChannelClose (t * testing.T) { 陈ch:=(int) var wg sync.WaitGroup wg.Add (1) dataProducer (ch, wg) wg.Add (1) dataReceiver (ch, wg)//wg.Add (1)//dataReceiver (ch, wg)//wg.Add (1)//dataReceiver (ch, wg) wg.Wait () }/*在去测试 0 1 2 3. 4 5 6 7 8 9 通过 好了0.249秒 比;*//* func TestChannelClose (t * testing.T) { 陈ch:=(int) var wg sync.WaitGroup wg.Add (1) dataProducer (ch, wg) wg.Add (1) dataReceiver (ch, wg) wg.Add (1) dataReceiver (ch, wg) wg.Add (1) dataReceiver (ch, wg) wg.Wait () } 在去测试 0 1 4 5 6 7 8 9 3. 2 通过 好了0.360秒 比;*/