var ch1, ch2, ch3 = make(chan struct{}), make(chan struct{}), make(chan struct{})
var wg sync.WaitGroup
wg.Add(3)
go func(s string) {
defer wg.Done()
for i := 1; i <= 10; i++ {
<-ch1
fmt.Print(s)
ch2 <- struct{}{}
}
<-ch1
}("A")
go func(s string) {
defer wg.Done()
for i := 1; i <= 10; i++ {
<-ch2
fmt.Print(s)
ch3 <- struct{}{}
}
}("B")
go func(s string) {
defer wg.Done()
for i := 1; i <= 10; i++ {
<-ch3
fmt.Println(s)
ch1 <- struct{}{}
}
}("C")
ch1 <- struct{}{}
wg.Wait()
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。