Dmitry Vyukov — Go scheduler: Implementing language with lightweight concurrency
Hydra2 HN recommenders · recommended in 2 months, 2020-2026
47K views · 7 years ago · talk · evergreen
Go runtime contributor Dmitry Vyukov looks inside the Go scheduler, explaining how goroutines and channels are implemented. He covers the main scheduler components and overall operation, then goes into details such as preemption and stacks.
Recommended as a good watch on how Go's M:N:P scheduler works and why it was designed that way compared with alternative schemes.
51:27Google I/O 2012 - Go Concurrency Patterns
Google for Developers
894K views • 14 years ago
22:51GopherCon 2015: Go GC: Solving the Latency Problem - Rick Hudson
Gopher Academy
22K views • 11 years ago
59:26The Go Programming Language
Google TechTalks
406K views • 17 years ago
51:18Lexical Scanning in Go - Rob Pike
GoogleFOSSSydney
162K views • 15 years ago
23:57GopherCon 2016: The Design of the Go Assembler - Rob Pike
Gopher Academy
116K views • 10 years ago
52:54Rust at speed — building a fast concurrent database
Jon Gjengset
225K views • 7 years ago
12:31OSCON 2010: Rob Pike, "Public Static Void"
O'Reilly
119K views • 16 years ago
1:00:29Google I/O 2012 - Meet the Go Team
Google for Developers
108K views • 14 years ago
1:33:022013 Keynote: Chandler Carruth: Optimizing the Emergent Structures of C++
CppNow
34K views • 13 years ago
48:46Rust's Journey to Async/Await
InfoQ
90K views • 7 years ago
23:12dotGo 2015 - Rob Pike - Simplicity is Complicated
dotconferences
172K views • 10 years ago
1:04:26CppCon 2018: G. Nishanov “Nano-coroutines to the Rescue! (Using Coroutines TS, of Course)”
CppCon
40K views • 8 years ago
1:05:56Lang NEXT 2014 Panel Systems Programming in 2014 and Beyond
25msr
3K views • 8 years ago
1:02:49Hacking with Andrew and Brad: tip.golang.org
The Go Programming Language
99K views • 11 years ago
32:24RustLatam 2019 - Without Boats: Zero-Cost Async IO
Rust Programming Language
55K views • 7 years ago
56:36GopherCon 2014 Opening Keynote by Rob Pike
Confreaks
38K views • 12 years ago
48:19GopherCon 2014 Inside the Gophers Studio with Blake Mizerany
Confreaks
8K views • 12 years ago
1:32:33C++ and Beyond 2012: Herb Sutter - atomic Weapons 2 of 2
alexsmail
29K views • 9 years ago
1:02:17'Fastware' - Andrei Alexandrescu [ ACCU 2016 ]
ACCU Conference
34K views • 10 years ago
0:27Rob Pike about the target group of the Go programming language (golang)
f8C4G86p KbqEFe47
7K views • 6 years ago
3 comments from Hacker News
▶ this video - Dmitry Vyukov — Go scheduler: Implementing language with lightweight concurrency This one notably also explains the design considerations for golangs M:N:P in comparison to other schemes and which specific challenges it tries to address.
Go depends on the fact that it can track all pointers, and when it needs to resize stacks, it can update them. Previous versions of Go used segmented stacks, which are theoretically possible, if Zig really wanted (would need compiler support), but they have nasty performance side-effects, see ▶ this video
I guess that's because they are "intros," and often multi-core event loops are implemented by the language runtime or some threadpool library. This is a good watch: Dmitry Vyukov — Go scheduler: Implementing language with lightweight concurrency (Oct 14, 2019) ▶ this video