ゴルーチンに関する次の 2 つの呼び出しの違いを説明できる人はいますか?
方法 1
fmt.Println("Starting srv")
go LOGGER.Error(srv.ListenAndServe())
fmt.Println("Starting intSrv")
go LOGGER.Error(intSrv.ListenAndServe())
これは、「Starting srv」の実行後に停止します
方法 2
go func() {
fmt.Println("Starting srv")
srv.ListenAndServe()
}()
go func() {
fmt.Println("Starting intSrv")
intSrv.ListenAndServe()
}()
これにより、「Starting srv」と「Starting intSrv」の両方が実行されます。
挙動が違うのはなぜ?