John Reese - Thinking Outside the GIL with AsyncIO and Multiprocessing - PyCon 2018

Speaker: John Reese
Have you ever written a small, elegant application that couldn't keep up with the growth of your data or user demand? Did your beautiful design end up buried in threads and locks? Did Python's very special Global Interpreter Lock make all of this an exercise in futility?
This talk is for you! With the combined powers of AsyncIO and multiprocessing, we'll redesign an old multithreaded application limited by the GIL into a modern solution that scales with the demand using only the standard library. No prior AsyncIO or multiprocessing experience required.
Slides can be found at: speakerdeck.com/pycon2018 and github.com/PyCon/2018-slides

Пікірлер: 26

  • @Sousleek
    @Sousleek6 жыл бұрын

    This video became a gold mine for me

  • @haritmohansaxena732
    @haritmohansaxena7324 жыл бұрын

    at @5:55 , you know he is a great programmer when he says, his coworker 'JSON'.

  • @kosmonautofficial296
    @kosmonautofficial296 Жыл бұрын

    awesome video! I am looking forward to trying this out with AsyncSSH

  • @brambeer5591
    @brambeer55914 жыл бұрын

    This is great, thanks!

  • @user-bp1it1xb4x
    @user-bp1it1xb4x5 жыл бұрын

    great video well done

  • @lawrencedoliveiro9104
    @lawrencedoliveiro91043 жыл бұрын

    8:25 multiprocessing supports shared storage, but you cannot put arbitrary Python objects here, only ctypes objects.

  • @lawrencedoliveiro9104
    @lawrencedoliveiro91043 жыл бұрын

    9:07 I have wondered about constructs like async def myfunc ... : return await «expr» which could be simplified to def myfunc ... : return «expr» Given that the caller expects an awaitable in either case, the behaviour is exactly the same.

  • @SteelBlueVision
    @SteelBlueVision6 жыл бұрын

    As usual the links to both the slides and speakerdeck point to nothing! Please fix this.

  • @xiaolu7988
    @xiaolu79885 жыл бұрын

    Can someone tell me what font he is using for his code, for example at 2:43 there?

  • @Yanonix

    @Yanonix

    5 жыл бұрын

    Probably Hack: github.com/source-foundry/Hack

  • @n7cmdr

    @n7cmdr

    4 жыл бұрын

    It's Fira Code: github.com/tonsky/FiraCode

  • @DaLoler1
    @DaLoler13 жыл бұрын

    11:25

  • @mephistotel87
    @mephistotel876 жыл бұрын

    1. get_nowait() raises queue.Empty exception. How do you handle that? I don't see 2. In that case there will be raised exception from future in run_until_complete which will lead to terminating all application

  • @n7cmdr

    @n7cmdr

    6 жыл бұрын

    Yes, I elided the exception handling in the slides for the sake of brevity, but the code in the aiomultiprocess library correctly handles the Empty exceptions. See github.com/jreese/aiomultiprocess/blob/master/aiomultiprocess/core.py for more details.

  • @dclxviclan
    @dclxviclan Жыл бұрын

    Hmm... i look this

  • @pynchia4119
    @pynchia41193 жыл бұрын

    Great library, well done! Just relax and learn to speak in public

  • @pourimow2630
    @pourimow26304 жыл бұрын

    Why jumping through so many hoops to use Python instead of using a better programming language?

  • @wlgrd7052

    @wlgrd7052

    3 жыл бұрын

    Define "better"

  • @lawrencedoliveiro9104

    @lawrencedoliveiro9104

    3 жыл бұрын

    I sense a straggler from the Java/C♯/PHP crowd ...

  • @kicknotes
    @kicknotes5 жыл бұрын

    I really wish speakers would learn a bit more about speaking or practice for an objective listener (for feedback) before presenting. I know nerves can be a factor, but constant "ums" and "uhs" can really detract from a presentation. This was hard for me to watch as a result of that.

  • @checkerist

    @checkerist

    5 жыл бұрын

    I haven't noticed this until reading your comment!

  • @therumbler

    @therumbler

    5 жыл бұрын

    I really wish KZread commenters would learn a bit more about communication or practice with an objective reader (for feedback) before commenting. I know they're just trying to give advice, but the condescending tone and odd passive aggressiveness can really distract from the message. This comment was hard to read as a result of that.

  • @trixn4285

    @trixn4285

    4 жыл бұрын

    Well, yeah, is it possible that you don't understand the topic well enough to follow so you focused on the style of presentation rather than the content? Surely it wasn't exceptionally entertaining but totally fine and with high quality information. Didn't really notice the "ums" until reading your comment. You could be a bit more thankful for being provided with quality information for free.