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

    Google I/O 2012 - Go Concurrency Patterns

    Google for Developers

    9 HN recommenders · recommended in 15 months, 2012–2025

    YouTube

    51:27 · 894K views · Jul 2, 2012

    Rob Pike's Google I/O 2012 talk shows how goroutines and channels solve tricky concurrency problems with simple Go code. It features a playful goroutine demo with gophers passing messages and a search engine example.

    The canonical recommendation for learning Go concurrency, praised as entertaining and clarifying when to use channels versus mutexes.

    Software Engineering & LanguagesC, C++, Rust, Go & systems languagesDistributed systems
    1. 51:18
      Lexical Scanning in Go - Rob PikeGoogleFOSSSydney162K views • 15 years ago
    2. 38:19
      Origins of Go Concurrency style by Rob Pikejasonofthel33t28K views • 14 years ago
    3. 31:23
      Concurrency is not Parallelism by Rob Pikegnbitcom191K views • 10 years ago
    4. 23:57
      GopherCon 2016: The Design of the Go Assembler - Rob PikeGopher Academy116K views • 10 years ago
    5. 23:12
      dotGo 2015 - Rob Pike - Simplicity is Complicateddotconferences172K views • 10 years ago
    6. 22:29
      Gopherfest 2015 | Go Proverbs with Rob PikeThe Go Programming Language317K views • 10 years ago
    7. 1:00:40
      Dmitry Vyukov — Go scheduler: Implementing language with lightweight concurrencyHydra47K views • 7 years ago
    8. 1:00:29
      Google I/O 2012 - Meet the Go TeamGoogle for Developers108K views • 14 years ago
    9. 59:26
      The Go Programming LanguageGoogle TechTalks406K views • 16 years ago
    10. 1:07:00
      Sydney Golang Meetup - Rob Pike - Go 2 Draft SpecificationsMacquarie Group57K views • 7 years ago
    11. 56:36
      GopherCon 2014 Opening Keynote by Rob PikeConfreaks38K views • 12 years ago
    12. 51:12
      Google I/O 2011: Writing Web Apps in GoGoogle for Developers135K views • 15 years ago
    13. 12:31
      OSCON 2010: Rob Pike, "Public Static Void"O'Reilly119K views • 16 years ago
    14. 22:51
      GopherCon 2015: Go GC: Solving the Latency Problem - Rick HudsonGopher Academy22K views • 11 years ago
    15. 1:13:53
      Raymond Hettinger, Keynote on Concurrency, PyBay 2017SF Python161K views • 9 years ago
    16. 1:06:45
      Let's #TalkConcurrency Panel Discussion with Sir Tony Hoare, Joe Armstrong, and Carl HewittErlang Solutions13K views • 7 years ago
    17. 52:54
      Rust at speed — building a fast concurrent databaseJon Gjengset225K views • 7 years ago
    18. 49:20
      Modeling Data Concurrency w/ Asynchronous I/O in Zig - RedisConf 2020Redis11K views • 6 years ago
    19. 58:36
      Advanced Topics in Programming Languages: A Lock-Free Hash TableGoogleTalksArchive29K views • 14 years ago
    20. 31:18
      Gopherfest 2017 | Upspin with Rob PikeThe Go Programming Language50K views • 9 years ago

    19 comments from Hacker News

    1. @canthonytucciSep 2013· in “Less is exponentially more (2012)”

      For those who don't know who Rob Pike is, he's pretty awesome, helped create UTF-8 among other things, and now works on Go. [LINK] He has given some really great Go talks which are available on youtube, about an hour each: Origins of Go Concurrency Style - [LINK] Lexical Scanning in Go - [LINK] Go Concurrency Patterns (One of my favorites) - this video

      Strongly recommendsView on HN
    2. @mseepgoodJul 2012· in “Having a Go - first time experience with Golang”

      Great talk by Rob Pike: this video "Go Concurrency Patterns" with cute little gophers playing Chinese whispers with megaphones

      Strongly recommendsView on HN
    3. @gunapologist99Jun 2022· in “What's New in Python 3.11?”

      This is true, that's exactly what exceptions are. One could argue (I would) that this is a very powerful part of Python, but the indeterminate nature of the exception (where is it coming from, how is it defined, what should I provide to my client) makes it easier to catch exceptions as they percolate upward, but more difficult to correctly know how to handle them (especially as the permutations approach infinity as underlying libraries get upgraded). Golang actually has a back-channel communication path that is somewhat similar as a second channel of communications. (Actually they're called channels!) They're a first-class and extremely powerful feature of the language. You can even run a for loop over them, block or not block while waiting for an incoming message, etc. Here's a great video that talks about use cases and the patterns in using them, and they pair great with goroutines (and you don't have to sprinkle async before every function, either): this video

      RecommendsView on HN
    4. @pbohunNov 2025· in “A million ways to die from a data race in Go”

      Not quite. Erlang uses the Actor model which delivers messages asynchronously to named processes. In Go, messages are passed between goroutines via channels, which provide a synchronization mechanism (when un-buffered). The ability to synchronize allow one to setup a "rhythm" to computation that the Actor model is explicitly not designed to do. Also, note that a process must know its consumer in the Actor model, but goroutines do not need to know their consumer in the CSP model. Channels can even be passed around to other goroutines! Each have their own pros and cons. You can see some of the legends who invented different methods of concurrency here: [LINK] There's also a nice talk Rob Pike gave that illustrated some very useful concurrency patterns that can be built using the CSP model: this video

      RecommendsView on HN
    5. @srcreighJun 2014· in “Go support for Android”

      In my experience with Android apps, I've almost never had to use the NDK. When I did have to use the NDK, it wasn't because I wanted to code in C/C++---it was because there were strong, open-source libraries written in C/C++ that I wanted to use in an app (Though, I have no experience making games on Android). If you want to check out Go, then the Go Tour [1] and the various talks by Rob Pike [2] [3] / Sameer Ajmani [4] are great resources. The Go Tour stands on its own as an interest-building resource; the several programming exercises it has you do are fun and challenging. [1]: [LINK] [2]: this video [3]: [LINK] [4]: [LINK]

      RecommendsView on HN