Golang在任何go例程完成后结束功能

Golang在任何go例程完成后结束功能,go,Go,我有一个主函数,看起来是这样的: func main() { go SyncRealTime() go SyncStale() } 这两种功能都应该无限期地继续下去。我想将main发送到: 只要两个goroutine都在运行,就不会终止 如果其中一个goroutine终止(即错误),则终止 围棋中的惯用方法是什么?这是一种方法: func main() { c := make(chan string) go func() { SyncReal

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

func main() {
    go SyncRealTime()
    go SyncStale()
}
这两种功能都应该无限期地继续下去。我想将
main
发送到:

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

围棋中的惯用方法是什么?

这是一种方法:

func main() {
    c := make(chan string)
    go func() {
        SyncRealTime()
        c <- "SyncRealTime"
    }()

    go func() {
        SyncStale()
        c <- "SyncStale"
    }()

    firstDone := <-c
    fmt.Println(firstDone + " exited")
    // done
}
func main(){
c:=制造(成串)
go func(){
SyncRealTime()
从
程序执行开始,初始化主包,然后调用函数main。当该函数调用返回时,程序退出。它不会等待其他(非主)goroutine完成。