你以前可能听说过 Goroutine 调度器,但你对它的工作原理了解多少?它如何将 goroutine 与线程配对?原文:Goroutine Scheduler Revealed: Never See Goroutines the Same Way Again不用着急理解上面的图像,因为我们要从最基本的开始。goroutine 被分配到线程中运行,这由 goroutine 调度器在后台处理。根据我们之前的讨论,我们了解到以下关于 goroutine 的几点:就原始执行速度而言,goroutine 并不一定比线程更快,因为它们需要在实际线程上运行。goroutine 真正的优势在于上下文切换、内存占用、创建和销毁的成本等方面。你可能以前听说过 goroutine 调度器,但我们真正了解它的工作原理吗?它是如何将 goroutine 与线程配对的?现在让我们一步一步地分解调度器的工作原理。goroutine M:N 调度器模型Go 团队真的为我们简化了并发编程,想想看:创建一个 goroutine 只需要在函数前加上 go 关键字就可以了。1godoWork()但在这个简单的步骤背后,有一个更深层次的系统在运作。一开始,Go 就没有简单地为我们提供线程。相反,中间有一个助手,即 goroutine 调度器,它是 Go 运行时的关键部分。那么M:N这个标签是什么意思呢?它体现了Go调度器
...
继续阅读
(168)