1 回答

TA貢獻(xiàn)1818條經(jīng)驗 獲得超7個贊
如此小的函數(shù)不太可能演示并發(fā)性,因為第一個 goroutine 甚至可能在第二個函數(shù)開始之前或上下文切換發(fā)生之前完成。如果在循環(huán)中添加一個小的暫停,您將觀察到交錯:
package main
import (
"fmt"
"sync"
"time"
)
func main() {
var wg sync.WaitGroup
wg.Add(2)
go func() {
for i := 0; i < 4; i++ {
if i%2 == 0 {
fmt.Println("hi", i)
}
time.Sleep(10 * time.Millisecond)
}
wg.Done()
}()
go func() {
for i := 0; i < 4; i++ {
if i%2 != 0 {
fmt.Println("from g", i)
}
time.Sleep(10 * time.Millisecond)
}
wg.Done()
}()
wg.Wait()
}
- 1 回答
- 0 關(guān)注
- 78 瀏覽
添加回答
舉報