Learn Python's AsyncIO in 15 minutes

In this tutorial we will be looking at asyncio, which is a package from the standard Python library which allows us to do asyncronous programming. It's very easy to learn, but can be a bit tricky to master. Any way, we will be covering how to use it in less than 15 minutes!
▶ Become job-ready with Python:
www.indently.io
▶ Follow me on Instagram:
/ indentlyreels
Documentation:
docs.python.org/3/library/asy...

Пікірлер: 41

  • @eitantal726
    @eitantal72613 күн бұрын

    1:44 I think the point of 'await' is to let python do a context switch. Normal function call to sleep will also transfer control to the next line after the sleep is done, await doesn't affect that

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

    Simple but most essential and elegant explanations for the asyncio. Huge thanks!

  • @ramima6465
    @ramima64652 ай бұрын

    The `await asyncio.sleep(0.5)` isn't needed because "the task sometimes happends so fast that task.canceled is not going to be able to register the cancel in enough time"! But it's needed because `task.cancel()` doesn't actually start the cancelation but merely schedule it for cancellation. The task will be cancelled when control returns to the event loop, which happens when an await expression is encountered.

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

    Awesome vid; glad I stumbled upon this! Much cleaner than threading/mp libraries, so I want to learn this one! Why does main have to be async def main and not just def main? Also, does that mean that any functions I use in the async module must have with the async keyword in the definition?

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

    Thanks for this exposition 👍

  • @davepeace603
    @davepeace60311 күн бұрын

    11:10 the asyncio.sleep can be set to asyncio.sleep(0.0) and it will stil register i know its a bit late but still might be relevant..

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

    thanks really understood the concept.

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

    Great video, thanks!

  • @djbroake9810
    @djbroake98109 ай бұрын

    Thanks for the content. I think there are a few ways to do this, In the example you execute the function and then append the returned data to the list, rather than appending the function call itself to a list, Here are 2 examples: tasks = [loop.create_task(kill_time(i)) for i in range(1, 10+1)] await asyncio.wait(tasks) for task in tasks: print(task.result()) or list_of = [] for i in range(1, 10+1): task = asyncio.create_task(kill_time(i)) list_of.append(task) await asyncio.gather(*list_of)

  • @emailvinz
    @emailvinz4 ай бұрын

    Very clear, thank you very much !

  • @supundasanthakuruppu3496
    @supundasanthakuruppu34965 ай бұрын

    This was very helpful. Thank you.

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

    Thanks o this video I've decided to rewrite my synchronous data grabber (web scrapping and directly via API) based on requests to asyncio and aiohttp. Speedup was about ~2x :)

  • @artem_isakow
    @artem_isakow6 ай бұрын

    Very clear 👌

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

    Thanks for the explanation

  • @cusematt23
    @cusematt234 ай бұрын

    I think this video is great. Very clear.

  • @findritesh
    @findritesh11 ай бұрын

    great tutorial!

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

    For a noob like me this was awesome! Thank you

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

    👏Clear and concise

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

    are u using python 3.10?? bcs some function has depreced

  • @blizzred2143
    @blizzred21434 ай бұрын

    Can I use this to constantly check if a program is running, then make an if statement saying if the program is not running open a file and if it’s already running print the name of the current file it’s running? I’m trying to make this but with a start and stop button…

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

    Thanks for a simple explanation!

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

    very nice

  • @abtheminecraft
    @abtheminecraft10 ай бұрын

    @7:15 isnt the function kill_time() already called before you do await.gather()

  • @e_a_r_t_h_m_a_n

    @e_a_r_t_h_m_a_n

    4 ай бұрын

    coroutines (any function with `yield` or `await` inside) should be `extracted` from a function first by a call syntax. But this call is not a call, it just returns a `coroutine` object.

  • @eldebtor6973
    @eldebtor69732 ай бұрын

    doesnt await defeat the asynchronous behavior and make it blocking? 🤒

  • @eugenmalatov5470

    @eugenmalatov5470

    Ай бұрын

    i think the explanation is wrong. Await starts a async coroutine, nothing to do with waiting afaik.

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

    Nice explanation, very helpfull for me. A huge thanks !!

  • @pennystriker
    @pennystriker9 ай бұрын

    Your voice & accent sounds a lot like Naval Ravikant 😃

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

    This is arguably the best asyncio-await explanation on youtube!. thanks for keeping it simple to understand!

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

    Can you please provide source code for these videos

  • @Indently

    @Indently

    Жыл бұрын

    I don’t have source code for these videos

  • @__lasevix_

    @__lasevix_

    Жыл бұрын

    @@Indently you delete all the example files after writing ?

  • @Indently

    @Indently

    Жыл бұрын

    @@__lasevix_ Yeah, I don't share source code in general for non-project videos

  • @alexiswiftrock

    @alexiswiftrock

    Жыл бұрын

    Just follow along in practice. Not everything has to be a handout.

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

    6:57 No. Use list_of_tasks = [kill_time(i) for i in range(1000)]

  • @Slay_and_Play

    @Slay_and_Play

    10 ай бұрын

    Why do you need list comprehension versus what he had?

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

    11:15 I am strongly against waiting like that. I would loop or create something awaitable instead, but I want to learn it, and you giving me an anti-pattern like that makes me question the usefulness of the rest :/

  • @Indently

    @Indently

    Жыл бұрын

    You can be strongly against whatever you want. The sleep can also be set to 0 if you want, but you need to provide your script some context to be able to perform a switch or it never will.

  • @trzztrzz2477
    @trzztrzz24776 ай бұрын

    fuoco frigiteli y adizo

  • @Alex-bw8wr
    @Alex-bw8wr Жыл бұрын

    Not super useful 😢

  • @Indently

    @Indently

    Жыл бұрын

    Thank you for the useful comment 😉