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

    Raymond Hettinger, Keynote on Concurrency, PyBay 2017

    SF Python

    4 HN recommenders · recommended in 7 months, 2018–2023

    YouTube

    1:13:53 · 161K views · Aug 31, 2017

    Raymond Hettinger's PyBay 2017 keynote on concurrency in Python. It covers threads, processes, asyncio, locks and the GIL, with live shell-based examples.

    Recommended as a clear, charismatic starting point for understanding Python concurrency and the GIL.

    Software Engineering & LanguagesPython, Ruby & scripting languagesSoftware architecture & design
    1. 46:10
      Understanding the Python GILDavid Beazley127K views • 14 years ago
    2. 32:17
      Nathaniel J. Smith - Trio: Async concurrency for mere mortals - PyCon 2018PyCon 201830K views • 8 years ago
    3. 2:12:42
      Build Your Own AsyncDavid Beazley60K views • 7 years ago
    4. 51:27
      Google I/O 2012 - Go Concurrency PatternsGoogle for Developers894K views • 14 years ago
    5. 1:07:41
      Modern Dictionaries by Raymond HettingerSF Python150K views • 9 years ago
    6. 32:07
      Larry Hastings - Removing Python's GIL: The Gilectomy - PyCon 2016PyCon 201649K views • 10 years ago
    7. 40:01
      Keynote - Preventing, Finding, and Fixing Bugs On a Time Budget | Raymond Hettinger @ PyBay2018SF Python27K views • 8 years ago
    8. 58:08
      Parallelism, Concurrency, and Asynchrony in Perl 6 / Jonathan Worthingtonyapcasia6K views • 11 years ago
    9. 1:10:00
      The Mental Game of Python - Raymond HettingerSF Python131K views • 7 years ago
    10. 42:03
      The Soul of Erlang and Elixir • Sasa Juric • GOTO 2019GOTO Conferences384K views • 7 years ago
    11. 31:23
      Concurrency is not Parallelism by Rob Pikegnbitcom191K views • 10 years ago
    12. 48:51
      Transforming Code into Beautiful, Idiomatic PythonNext Day Video1.1M views • 13 years ago
    13. 1:01:45
      A Talk Near the Future of Python (a.k.a., Dave live-codes a WebAssembly Interpreter)David Beazley26K views • 7 years ago
    14. 1:06:45
      Let's #TalkConcurrency Panel Discussion with Sir Tony Hoare, Joe Armstrong, and Carl HewittErlang Solutions13K views • 7 years ago
    15. 2:32:39
      Clojure Concurrency - Rich HickeyClojureTV73K views • 13 years ago
    16. 34:00
      User-level threads....... with threads. - Paul Turner - GoogleLinux Plumbers Conference41K views • 13 years ago
    17. 51:18
      Lexical Scanning in Go - Rob PikeGoogleFOSSSydney162K views • 15 years ago
    18. 26:34
      Shared memory parallelism in Julia | Kiran Pamnany | Cambridge Julia Meetup (May 2018)The Julia Programming Language6.8K views • 8 years ago
    19. 45:08
      Raymond Hettinger - Dataclasses: The code generator to end all code generators - PyCon 2018PyCon 2018130K views • 8 years ago
    20. 42:44
      Armin Ronacher - A Python for Future GenerationsEuroPython Conference6.2K views • 9 years ago

    7 comments from Hacker News

    1. @culebron21Jul 2023· in “How to use a Python multiprocessing module”

      I've just left the question open, but the best learning material for me on this was this lecture. Other points down the list, I had to figure out just by trial and error. Raymond Hettinger, Keynote on Concurrency, PyBay 2017 this video

      Strongly recommendsView on HN
    2. @scrollawayJul 2018· in “Ask HN: What talks or videos do you suggest to watch on a long flight?”

      I've started watching Raymond Hettinger's talks lately. He's a core dev on Python. I love them, the guy is charismatic, very smart and his Python knowledge constantly impresses me. [LINK] My favourite: this video

      Strongly recommendsView on HN
    3. @fastballSep 2021· in “The GIL and its effects on Python multithreading”

      For anyone looking for something on the same topic but a little bit lighter / more practical, I really enjoyed this talk[1] by Raymond Hettinger at PyBay 2017, where he discussed the GIL as well. [1] this video

      RecommendsView on HN
    4. @xkgtMay 2019· in “Has the Python GIL Been Slain? Subinterpreters in Python 3.8”

      It is because only one thread at a time holds the lock in order to avoid race conditions. The keynote[1] by Raymond Hettinger from PyBay '17 will be a great place to start if you are new to this. [1] this video

      RecommendsView on HN
    5. @targafarianFeb 2021· in “Python Concurrency: The Tricky Bits”

      To say concurrency is broken in Python because of the GIL seems to be reiterated adage without actual wisdom behind it.[1] Are you writing an IO-bound task? Then asyncio[2] (even if just viewed as an interface: e.g., you can make it even more performant by using uvloop[3]) is a great way to achieve performant concurrency. As Raymond Hettinger likes to point out, even if you throw away the GIL, you will have to implement locks on shared resources (unless you're writing embarrassingly parallel codes--in which case either you can invoke them separately or use the multiprocessing module to great effect, or see how I do it easily below), and by the time you get all the locks implemented in your GIL-less world (locks which are error-prone), you've given up the performance you thought you'd get due to throwing away the GIL. Are you writing a CPU-bound task? I've only encountered this in scientific computing, as I'm a scientist, and for this (as another commenter mentions) I either use numpy[4] (strictly within a numpy call, the GIL is not held) or numba[5] (by default the entirety of your numba-fied functions do not hold the GIL). Therefore, I can either use Python threads or asyncio or Numba's built-in parallelism[6,7] (summary: some numpy routines for working with arrays of values are auto-parallized if called within a numba-fied function, and you can explicitly parallelize your own loops via `for i in numba.prange(N):`; in any case, then decorate the function with `@numba.njit(pa

      CitesView on HN