Golang:函数内的 go func

问题描述 投票:0回答:1

我的应用程序中有一个函数,它执行一些对应用程序的其余部分很重要的操作,但随后必须执行一系列可以在 go 例程中并行完成的操作。

func A() {
   // some code
   go func() {
      // parallel code
   }()
}

现在我的问题很简单。我可以相信并行函数在“父”函数(在本例中为函数 A)结束后继续完成吗?或者如果 A 在并行功能完成之前结束(很可能是这种情况),它会被取消吗?
我希望不必使用通道来表示 go 例程的结束,因为这有点违背了并行执行此操作的目的。

go parallel-processing
1个回答
0
投票

启动的goroutine在

A()
返回后会继续运行,事实上,你甚至无法强制一个goroutine停止。如果 你的应用程序结束(
main()
返回)
.

,goroutines 被终止的唯一原因

另请注意,goroutine 不一定/自动意味着并行执行,仅意味着并发,请参阅并发不是并行

© www.soinside.com 2019 - 2024. All rights reserved.