Skip to content
HomeVideos
AllLongsCategoriesPlaylists
BooksBlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    Dmitry Vyukov — Go scheduler: Implementing language with lightweight concurrency

    Hydra

    2 HN recommenders · recommended in 3 months, 2020–2026

    YouTube

    1:00:40 · 47K views · Oct 14, 2019

    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.

    Software Engineering & LanguagesC, C++, Rust, Go & systems languagesCompilers, interpreters & program analysisSoftware performance & optimization
    1. 51:27
      Google I/O 2012 - Go Concurrency PatternsGoogle for Developers894K views • 14 years ago
    2. 51:18
      Lexical Scanning in Go - Rob PikeGoogleFOSSSydney162K views • 15 years ago
    3. 22:51
      GopherCon 2015: Go GC: Solving the Latency Problem - Rick HudsonGopher Academy22K views • 11 years ago
    4. 23:57
      GopherCon 2016: The Design of the Go Assembler - Rob PikeGopher Academy116K views • 10 years ago
    5. 59:26
      The Go Programming LanguageGoogle TechTalks406K views • 16 years ago
    6. 23:12
      dotGo 2015 - Rob Pike - Simplicity is Complicateddotconferences172K views • 10 years ago
    7. 48:46
      Rust's Journey to Async/AwaitInfoQ90K views • 6 years ago
    8. 52:54
      Rust at speed — building a fast concurrent databaseJon Gjengset225K views • 7 years ago
    9. 1:03:31
      Brian Goetz - Stewardship: the Sobering PartsClojureTV39K views • 11 years ago
    10. 12:31
      OSCON 2010: Rob Pike, "Public Static Void"O'Reilly119K views • 16 years ago
    11. 1:02:49
      Hacking with Andrew and Brad: tip.golang.orgThe Go Programming Language99K views • 11 years ago
    12. 32:24
      RustLatam 2019 - Without Boats: Zero-Cost Async IORust Programming Language55K views • 7 years ago
    13. 1:00:29
      Google I/O 2012 - Meet the Go TeamGoogle for Developers108K views • 14 years ago
    14. 31:23
      Concurrency is not Parallelism by Rob Pikegnbitcom191K views • 10 years ago
    15. 1:33:02
      2013 Keynote: Chandler Carruth: Optimizing the Emergent Structures of C++CppNow34K views • 13 years ago
    16. 1:13:53
      Raymond Hettinger, Keynote on Concurrency, PyBay 2017SF Python161K views • 9 years ago
    17. 1:29:55
      Sorting Algorithms: Speed Is Found In The Minds of People - Andrei Alexandrescu - CppCon 2019CppCon184K views • 7 years ago
    18. 1:21:13
      C++ and Beyond 2012: Herb Sutter - atomic Weapons 1 of 2alexsmail71K views • 9 years ago
    19. 34:55
      "Outperforming Imperative with Pure Functional Languages" by Richard FeldmanStrange Loop Conference98K views • 5 years ago
    20. 25:52
      Halide TalkAndrew Adams53K views • 12 years ago

    3 comments from Hacker News

    1. @RossBencinaFeb 2020· in “A Hitchhiker’s Guide to Asynchronous Programming”

      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

      RecommendsView on HN
    2. @c0baltMar 2026· in “Understanding the Go Runtime: The Scheduler”

      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.

      RecommendsView on HN
    3. @lukaslalinskyOct 2025· in “How I turned Zig into my favorite language to write network programs in”

      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

      CitesView on HN