我有一個簡單的測試項目,預(yù)計在運(yùn)行時打印 goroutine 調(diào)度消息。從 Goland 配置中設(shè)置 env 是有效的。但它不是來自下面的代碼,該應(yīng)用程序不會打印日程安排信息。有人解釋一下發(fā)生了什么嗎?func TestScheduler1() { var wg sync.WaitGroup wg.Add(10) for i := 0; i < 10; i++ { go work(&wg) } wg.Wait() // Wait to see the global run queue deplete. time.Sleep(3 * time.Second)}func work(wg *sync.WaitGroup) { time.Sleep(time.Second) var counter int for i := 0; i < 1e10; i++ { counter++ } wg.Done()}初始化函數(shù)如下: func init() { os.Setenv("GOMAXPROCS", "1") os.Setenv("GODEBUG", os.Getenv("GODEBUG") + "schedtrace=1000,scheddetail=1")}
1 回答

莫回?zé)o
TA貢獻(xiàn)1865條經(jīng)驗 獲得超7個贊
go
命令文檔提到go
檢查一些環(huán)境變量:
go 命令及其調(diào)用的工具檢查一些不同的環(huán)境變量。
因此,環(huán)境變量在程序啟動之前(即構(gòu)建時)進(jìn)行檢查。當(dāng)您從代碼中設(shè)置這些變量時,程序已經(jīng)運(yùn)行。
它可以在 IDE 中運(yùn)行,因為變量是在編譯之前應(yīng)用的,因此代碼運(yùn)行時會包含您需要的所有更改。
- 1 回答
- 0 關(guān)注
- 243 瀏覽
添加回答
舉報
0/150
提交
取消