知识卡片

main退出则程序退出不等其他goroutine

专业/工作 · 1375.a

内容

Go 程序只要 main goroutine(执行 main 函数的那个 goroutine)一结束,整个程序就立刻终止, 不管这时候还有多少其他 goroutine 没跑完——它们的工作会被直接中断丢弃,不存在”等所有子任务 收尾再退出”的默认行为。发散:这条规则倒逼开发者必须显式地设计”如何知道子任务做完了”这件事——[[goroutine比线程更轻量]] 让开工变得几乎零成本,但收工从来不是自动的,必须用。

参考来源

- 位置:《Head First Go语言程序设计》第13章《分享工作:goroutine和channel》(源文件:_epub-src/index_split_002.html) - 结论依据:原文在该章节围绕“Go程序只要maingoroutine(执行main函数的那个goroutine)一结束,整个程序就立刻终止,…”给出定义、示例或限制条件;摘录中的术语、代码片段或对比关系直接支撑本卡片的结论。 - 原始内容:Year: (d*Date)。只需要修改这点。我们不需要更新SetYear方法块,因为 d.Year会自动取到指针指向的值(就像我们使用了(*d).Year)。main 函数中的date.SetYear也不需要做修改,因为当Date值传递给方法的时 候,它会自动转换为*Date。 现在SetYear接受一个接收器的指针,如果重新运行代码,…