```
package main
import (
"fmt"
"runtime"
"sync"
)
func init() {
fmt.Println("Current Go Version:", runtime.Version())
}
func main() {
runtime.GOMAXPROCS(1)
count := 10
wg := sync.WaitGroup{}
wg.Add(count * 2)
for i := 0; i < count; i++ {
go func() {
fmt.Printf("[%d]", i)
wg.Done()
}()
}
for i := 0; i < count; i++ {
go func(i int) {
fmt.Printf("-%d-", i)
wg.Done()
}(i)
}
wg.Wait()
}
```
Go 有一套自己的管理、调度、执行goroutine的方式就是我们说的Go的并发, 所以我们可以假装这样理解(代码中第二个for循环中的goroutine刚执行一次,就被暂停执行其他的goroutine了),**这是Go控制管理的**
#14
更多评论
这里是答案
https://wide.b3log.org/playground/0bc5162cf88188d75a2e59ef537085d0.go
#1