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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么從代碼中調用 Setenv 不起作用?

為什么從代碼中調用 Setenv 不起作用?

Go
尚方寶劍之說 2023-07-10 09:23:33
我有一個簡單的測試項目,預計在運行時打印 goroutine 調度消息。從 Goland 配置中設置 env 是有效的。但它不是來自下面的代碼,該應用程序不會打印日程安排信息。有人解釋一下發生了什么嗎?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()}初始化函數如下: func init()  {    os.Setenv("GOMAXPROCS", "1")    os.Setenv("GODEBUG", os.Getenv("GODEBUG") + "schedtrace=1000,scheddetail=1")}
查看完整描述

1 回答

?
莫回無

TA貢獻1865條經驗 獲得超7個贊

go命令文檔提到go檢查一些環境變量:

go 命令及其調用的工具檢查一些不同的環境變量。

因此,環境變量在程序啟動之前(即構建時)進行檢查。當您從代碼中設置這些變量時,程序已經運行。

它可以在 IDE 中運行,因為變量是在編譯之前應用的,因此代碼運行時會包含您需要的所有更改。


查看完整回答
反對 回復 2023-07-10
  • 1 回答
  • 0 關注
  • 231 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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