The Go scheduler
There are a couple of different pieces involved in the management of goroutine life cycles by the Go runtime scheduler. The Go scheduler was changed in its second iteration, which was derived from a design document written by Dmitry Vyukov, released in Go 1.1. In this design doc, Vyukov discusses the initial Go scheduler and how to implement a work-sharing and work-stealing scheduler, as originally prescribed by Dr Robert D. Blumofe and Dr. Charles E. Leiserson in an MIT paper entitled, Scheduling Multithreaded Computations by Work Stealing. The fundamental concept behind this paper is to ensure dynamic, multithreaded computation in order to ensure that processors are utilized efficiently while maintaining memory requirements. ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access