【发布时间】:2014-04-06 13:27:54
【问题描述】:
我对我对 for 循环中 go 子例程的行为的理解有些怀疑。
据我了解,当我们有一个 for 循环时:
for key := range Map {
go subroutine(Map[key])
}
Map 有 3 个 (key,Value) 对。
所以我的理解是 subroutine() 函数将使用所有 Map[Key] 值同时运行,即 subroutine(Map[key1]),subroutine(Map[key2]) 和 subroutine(Map[key3]) 都会同时运行?
我对 for 循环中并发子例程的理解正确吗?
谢谢!
【问题讨论】:
-
除了是/否答案之外,您还在寻找什么? (答案是肯定的)。
-
如果我的理解不正确,我只想确认或更正。谢谢!
-
是的,如果没有等待子程序完成,您的程序可以/将在子程序完成之前退出
-
如果 maxprocs 为 1,您可能会遇到一些问题。 golang.org/pkg/runtime/#GOMAXPROCS
标签: for-loop concurrency go behavior subroutine