1 回答

TA貢獻1775條經(jīng)驗 獲得超11個贊
規(guī)范:Go 語句:
函數(shù)值和參數(shù)在調(diào)用 goroutine 中照常計算,但與常規(guī)調(diào)用不同,程序執(zhí)行不會等待調(diào)用的函數(shù)完成。相反,該函數(shù)開始在新的 goroutine 中獨立執(zhí)行。
在第一個示例中,您啟動一個不帶參數(shù)的匿名函數(shù)(函數(shù)文字)作為新的 goroutine。Must()
并demo_process1()
在其中同時調(diào)用demo_process2()
(在“原始”goroutine 中執(zhí)行)。
然而,在你的第二個例子中:
go?Must(demo_process1()) demo_process2()
作為 goroutine 啟動的函數(shù)是,其參數(shù)在調(diào)用 goroutine 中Must()
計算。的參數(shù)是 的返回值,表示在啟動新的 goroutine 之前先被調(diào)用并等待。只有當它返回時,新的 goroutine 才能啟動并被調(diào)用(在“原始”goroutine 上)。Must()
demo_process1()
demo_process1()
demo_process2()
總而言之,在第二個示例中demo_process1()
和demo_process2()
不是同時運行,而是在同一個 goroutine 中順序運行。只有 會Must()
在新的 goroutine 上執(zhí)行(與 同時執(zhí)行demo_process2()
)。
- 1 回答
- 0 關(guān)注
- 154 瀏覽
添加回答
舉報