【发布时间】:2020-10-03 23:05:06
【问题描述】:
我有这个基本的 go 程序,可以打印到控制台并调用 2 个 goroutines
package main
import (
"fmt"
"time"
)
func f(from string) {
for i := 0; i < 3; i++ {
fmt.Println(from, ":", i)
}
}
func main() {
f("hello")
go f("foo")
go f("bar")
time.Sleep(time.Second)
}
输出如下——我想知道为什么“bar”在“foo”之前打印——是什么决定了goroutines的执行顺序?
hello : 0
hello : 1
hello : 2
bar : 0
bar : 1
bar : 2
foo : 0
foo : 1
foo : 2
【问题讨论】:
标签: go concurrency goroutine