社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
package main
import (
"fmt"
"time"
)
func main() {
names := []string{"Eric", "Harry", "Robert", "Jim", "Mark"}
for _, name := range names {
// 主协程和子协程中的代码是并发执行的,但是子协程的执行需要一定的初始化时间,
// 子协程在打印输出的时候,主协程已经遍历到切片中的最后几个值了(具有不确定性)
go func() {
fmt.Printf("Hello,%s!n", name)
}()
}
//如果此行注释掉,主协程结束且子协程无任何打印输出
time.Sleep(time.Millisecond)
}
/*
输出结果如下Hello,Mark!
Hello,Mark!
Hello,Jim!
Hello,Mark!
Hello,Mark!
*/
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!