Go的文档说
Gosched 产生处理器,允许其他 goroutines 运行。它不会暂停当前的 goroutine,因此执行会自动恢复。
基于该定义,如果我有一系列同时创建和执行的长时间运行的 go 例程,那么以下列方式编写 select 语句是否有利:
for {
select {
case msg := <- msgch :
fmt.Println(msg)
default:
runtime.Gosched()
}
}
我假设根据文档,这段代码会导致运行更多的 go 例程。我的假设正确吗?
catspeake
梦里花落0921
相关分类