我有一个简单的测试项目,预计在运行时打印 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 中运行,因为变量是在编译之前应用的,因此代码运行时会包含您需要的所有更改。
- 1 回答
- 0 关注
- 178 浏览
添加回答
举报
0/150
提交
取消