亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

runtime.Gosched()

package?main

import?(
????"fmt"
????"runtime"
)

func?main()?{
????go?fmt.Println("Go!")
????runtime.Gosched()
}

請問這個代碼不執行println是什么原因呢

正在回答

3 回答

主協程(main函數程序塊)執行完時,如果存在子協程(go語句程序塊)沒有被調用執行,那就會直接被丟棄。runtime.Gosched會激活子協程,但不會中斷主協程,所以可能go語句沒執行完時main協程就完成退出了

0 回復 有任何疑惑可以回復我~

嘗試了一下,有時候執行有時候不執行,還是隨機的,所以runtime.Gosched()到底做了什么(哭笑不得

0 回復 有任何疑惑可以回復我~
#1

BioCrossCoder

打個比方,你正在吃飯(執行main),調用runtime.Gosched是在吃飯時打開電視看一個電視?。▓绦術o語句);看電視不會中斷你吃飯,電視劇沒播完你就已經吃完飯了(go語句沒執行完main就執行完了),這時候你直接去洗碗了(退出程序),那當然看不到這一集電視劇的結尾(go語句執行的結果)了。
2023-07-23 回復 有任何疑惑可以回復我~

不需要 go

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Go語言第一課
  • 參與學習       108029    人
  • 解答問題       153    個

Go語言入門教程,編程之必備知識擴散,打好Go語言編程基礎

進入課程

runtime.Gosched()

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號