Golang 在任何 go 例程完成后结束函数



我有一个看起来像这样的主函数:

func main() {
go SyncRealTime()
go SyncStale()
}

这两个功能都应该无限期地继续下去。我想让main

  • 只要两个 Goroutines 都在运行,就不会终止。
  • 如果其中一个 Goroutines 终止(即错误(,则终止

在 Go 中这样做的惯用方法是什么?

这是一种方法:

func main() {
c := make(chan string)
go func() {
SyncRealTime()
c <- "SyncRealTime"
}()
go func() {
SyncStale()
c <- "SyncStale"
}()
firstDone := <-c
fmt.Println(firstDone + " exited")
// done
}

最新更新