golang 的 time.Sleep 是阻塞线程还是阻塞协程。

2019-09-21 16:13:37 +08:00
 wlgqa
golang 的 time.Sleep 是直接阻塞线程还是只阻塞协程。
7364 次点击
所在节点    Go 编程语言
4 条回复
zhujinliang
2019-09-21 16:18:47 +08:00
协程
Leigg
2019-09-21 18:22:00 +08:00
这问题问的,,先熟悉一下 go 并发调度原理
reus
2019-09-21 19:46:55 +08:00
爱阻塞啥阻塞啥,只要语义符合,阻塞 goroutine 或者阻塞系统线程,都是正确的实现。
当然现在的实现是阻塞 goroutine。

在 go 的语义里,根本就不存在 goroutine 和系统线程的区别,不同的调度器实现会用不同的策略,所以也不要假定以后也会一直是 M:N 的调度器,可以是 1:1 的,而且在程序里,没有办法区分。
wweir
2019-09-21 19:49:30 +08:00
协程,runtime 不给对应的 goroutine 分配运行时间片

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/602845

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX