go语言实战中有段代码不明白,请问哪位帮忙给看一下,多谢

darren_lou · · 2664 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

func main() { runtime.GOMAXPROCS(1) var wg sync.WaitGroup wg.Add(2) fmt.Println("Start Goroutines") go func(){ defer wg.Done() for count := 0; count < 3; count++{ for char := 'a'; char < 'a' + 26; char++{ fmt.Printf("%c ", char) } } }() go func(){ defer wg.Done() for count := 0; count < 3; count++{ for char := 'A'; char < 'A' + 26; char++{ fmt.Printf("%c ", char) } } }() fmt.Println("Waiting To Finish") wg.Wait() fmt.Println("\nTerminating Program") } 输出结果为 Start Goroutines Waiting To Finish A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z a b c d e f g h i j k l m n o p q r s t u v w x y z a b c d e f g h i j k l m n o p q r s t u v w x y z Terminating Program 不明白为什么先输出大写字母,书上有一段解释,看了之后依然一头雾水,以下是书上的解释。 第一个goroutine 完成所有显示需要花时间太短了,以至于在调度器切换到第二个goroutine 之前,就完成了所有任务。这也是为什么会看到先输出了所有的大写字母,之后才输出小写字母。 哪位能解释一下什么叫“第一个goroutine 完成所有显示需要花时间太短了,以至于在调度器切换到第二个goroutine 之前,就完成了所有任务”?这句完全不明白在说什么呀?

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2664 次点击  
加入收藏 微博
12 回复  |  直到 2022-11-22 16:35:18
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传