不用这个runtime.Gosched()也能正确打印

来源:10-1 goroutine

mjka5632

2018-05-01

http://img.mukewang.com/szimg/5ae865100001c75a06760765.jpg

写回答

1回答

ccmouse

2018-05-01

这个和系统cpu有多少核,系统种类和版本,go语言版本都有关系。go的调度器本身对于操作系统来说是非抢占式的,但是具体在什么时候交出控制权对于用户来说也不是完全确定的。

1
2
ccmouse
回复
mjka5632
正像另一位同学说的,我们可以在这之前加上runtime.GOMAXPROCS(1),强制go语言只使用一个核。这样很容易重现我录像里的这种不切换的现象。不过这里是个概念,不管是否能重现,我们都要在以后避免写出这样没有机会切换的goroutine
2018-05-02
共2条回复

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程