10分钟
1.5.5 Goroutine的创建
go语句会在当前Goroutine对应函数返回前创建新的Goroutine. 例如:
var a string
func f() {
print(a)
}
func hello() {
a = "hello, world"
go f()
}执行go f()语句创建Goroutine和hello函数是在同一个Goroutine中执行, 根据语句的书写顺序可以确定Goroutine的创建发生在hello函数返回之前, 但是新创建Goroutine对应的f()的执行事件和hello函数返回的事件则是不可排序的,也就是并发的。调用hello可能会在将来的某一时刻打印"hello, world",也很可能是在hello函数执行完成后才打印。
学员评价