How To Easily Do Asynchronous Programming With Asyncio In Python

แชร์
ฝัง
  • เผยแพร่เมื่อ 25 ธ.ค. 2024

ความคิดเห็น • 333

  • @ArjanCodes
    @ArjanCodes  ปีที่แล้ว +1

    💡Here's my FREE 7-step guide to help you consistently design great software: arjancodes.com/designguide.

  • @mauricepasternak6504
    @mauricepasternak6504 3 ปีที่แล้ว +211

    There is not a lot of material on queues, locks, etc. with asyncio on TH-cam. Certainly none showcased with using Python 3.10. I think a lot of people will benefit from seeing those synchronization primitives in use.
    Loved the use of the sequential and "parallel" wrappers in this video. Very clean and readable.

    • @ArjanCodes
      @ArjanCodes  3 ปีที่แล้ว +15

      Thanks Maurice, glad you enjoyed it!

    • @khunjohn1054
      @khunjohn1054 2 ปีที่แล้ว +4

      @@ArjanCodes Great video. The use of semaphore to control the number of "threads" is an important concept in asyncio, if you decide to make a longer video about it.

    • @ondskabenselv
      @ondskabenselv 2 ปีที่แล้ว

      ​@@ArjanCodes A quick question about that: why isn't the functions called in the sequential for loop (18:02)? It seems like the function, or callable objects, are just declared to be awaited, but newer invoked (adding a parenthesis after the name). Can you explain that I'm misunderstanding here?
      P. S.: Thanks for the video, it's one of the best I've seen on the topic!

    • @AndreyPutilov
      @AndreyPutilov 2 ปีที่แล้ว +1

      @@ondskabenselv I am a newbie in python but I guess arguments are not functions, or references to functions, they are "awaitables", something like "promises" in js. I think it's a result of async function, but it's not a final result but a proxy object that keeps information on how long does it take to wait until it is ready. The result of async function is that medium object, and such objects, called "awaitables" are passed, not function references. That's why we don't have to call it and add parenthesis.

    • @UTJK.
      @UTJK. 2 ปีที่แล้ว

      I followed another tutorial from him... his content is extremely detailed and well explained.

  • @SaintMyles
    @SaintMyles 3 ปีที่แล้ว +115

    Wow! Finally async makes sense to me. I've been trying to learn about it, but it just wouldn't click with any other video/article. This was the one that finally got me to understand it enough to use it. Thank you so much! I definitely would be interested in seeing you dive more into async and see what can be possible with it.

    • @ArjanCodes
      @ArjanCodes  3 ปีที่แล้ว +8

      Thanks, glad to hear it was helpful!

  • @murghay01
    @murghay01 3 ปีที่แล้ว +83

    Would DEFINITELY appreciate it if you did follow-ups to asyncio. Maybe even one on threading.
    Also, I am very, very thankful for your channel. When I first found your channel I was a lone developer at a company that did not have the guidance of a senior engineer. I knew quite a lot but my fundamentals were horrendous even though I had the breadth of knowledge. I was looking for a job because I knew I was lacking in depth and wanted to find a place where I could grow my ability. I began using your techniques in my take-home assessments and ultimately landed a job as a mid-level and it is 100000000000% because of you. I do watch your channel less because I'm learning a lot from the new company, and it's also in blockchain and that's another topic I'm learning a lot about as well. Anyway, wanted to say You're great and I can't believe you already have 50,000+ subscribers in less than a year. Great stuff. They use asyncio and some threading, so for old times sake...teach me. :)
    Merry Christmas and hope you have a happy new year.

    • @ArjanCodes
      @ArjanCodes  3 ปีที่แล้ว +5

      Hi Gamal, that’s amazing! I’m so happy for you that you were able to make such a meaningful move in your career. I feel honored that my videos have helped you get there. Have a great holiday as well, and feel free to come back for more videos any time ;).

    • @incremental_failure
      @incremental_failure 2 ปีที่แล้ว

      Threads are a very complex and wide subject, not to mention there's many methods of implementation - multiprocessing, QThreads for Qt etc.

    • @anselemokeke1143
      @anselemokeke1143 ปีที่แล้ว

      @@ArjanCodes great and impressive content. Please make more videos on python asyncio or even a project on it

  • @ThePaulWilliams
    @ThePaulWilliams 3 ปีที่แล้ว +53

    Here's another vote for more on async. I enjoy your approach to explaining things and using examples. Very helpful. Keep up the great work, Arjan!

    • @ArjanCodes
      @ArjanCodes  3 ปีที่แล้ว +1

      Thank you and will do, Paul!

  • @beauremus
    @beauremus 3 ปีที่แล้ว +36

    Excellent explanation! Thanks.
    I'd love more async content. It's hard for many to understand and I think this is helpful.

    • @ArjanCodes
      @ArjanCodes  3 ปีที่แล้ว +6

      Thank you Beau. There's more to come!

  • @kevinwork7181
    @kevinwork7181 6 หลายเดือนก่อน

    It’s been said a lot, but I’m just going to reiterate that this is the video which finally made async click!
    I couldn’t understand when or how to use the “gather” function, nor what it really does. You are the only one that realized how helpful & instructional it would be to show a full code still works synchronously when you have “await” everywhere, and that the “gather” function works by “gathering” all those awaits into a single call. This is what finally bridged the gap for me.
    I really appreciate all your content and think your videos have done the most to improve my skills in the past 4 months!

  • @andreasvaldma8428
    @andreasvaldma8428 2 ปีที่แล้ว +1

    The last speaker sequence you added:
    Turn on and play music
    You had the switch off speaker call also in that run_parallel call so it is possible for the switch off to run after the turn on call or before it.

  • @ronaldokun
    @ronaldokun ปีที่แล้ว +1

    I usually don't like "toy" examples, but you've made it so much sense with this one and clarified a somewhat obscure topic in python that now I see the value in them. Thank you!

    • @ArjanCodes
      @ArjanCodes  ปีที่แล้ว

      Glad it was helpful!

  • @anthonyarmour1812
    @anthonyarmour1812 2 ปีที่แล้ว +2

    This is my absolute favorite channel when it comes to coding tips... Everything is fantastic. So glad I found it this week

  • @urbansotensek4996
    @urbansotensek4996 3 ปีที่แล้ว +1

    Loving the light humor that's in always present somewhere in your videos.

  • @n5eg
    @n5eg 3 ปีที่แล้ว +10

    This is an outstanding Video ! Thank you putting it all together. More than just explaining async, the helper functions really tie it all together.

    • @ArjanCodes
      @ArjanCodes  3 ปีที่แล้ว +1

      Thank you Tom, glad you liked it!

  • @mihaimyh99
    @mihaimyh99 3 ปีที่แล้ว +20

    I would be super interested on a follow-up video on async queues and processes.

  • @draufunddran
    @draufunddran 3 ปีที่แล้ว +2

    This is the best Video on Python asyncio i have ever Seen. And i have Seen a Lot of them trying to understand this topic. You are a Genius Arjan. Finally i think i understand it. Keep the Videos in this topic coming, since i believe there is a lot more to learn.

    • @ArjanCodes
      @ArjanCodes  3 ปีที่แล้ว +1

      Wow, thanks Florian! Glad the video was helpful.

  • @incremental_failure
    @incremental_failure 2 ปีที่แล้ว

    Asyncio is amazing. Incredibly practical when you have complex synchronous code and now need to run certain functions asynchronously.

  • @santoshbhattarai3275
    @santoshbhattarai3275 3 ปีที่แล้ว

    I love the way how you show it first and then optimize it. Penetrates through the head.

    • @ArjanCodes
      @ArjanCodes  3 ปีที่แล้ว

      Glad you liked it!

  • @pranabsg
    @pranabsg 3 ปีที่แล้ว

    Thanks Arjan for hearing me out and creating the video (I requested for asyncio through one of my comment 7-8 months back, I think in some exception handling video:)).
    There are lots of materials on asyncio, but this one is the best and single place to have all information to handle asyncio in Pythonic way. Appreciate it.

    • @ArjanCodes
      @ArjanCodes  3 ปีที่แล้ว +1

      Glad to hear you liked it! Indeed, you were one of the commenters mentioning this. If you have other great suggestions, do let me know ;).

  • @sebastiencanart7423
    @sebastiencanart7423 3 ปีที่แล้ว +2

    I was looking at asyncio a few days ago to improve an internal application at work, and this video was published the same day! I really liked the way you have presented it and I would really like a follow-up video on more advanced async topic.
    Thanks you for your videos, they are always interesting!!

    • @ArjanCodes
      @ArjanCodes  3 ปีที่แล้ว

      Glad it was helpful!

  • @legion_prex3650
    @legion_prex3650 2 ปีที่แล้ว

    Hi Arjan, this is by far the BEST python channel on youtube. I really love you videos. thank you so much for sharing your knowledge!

    • @ArjanCodes
      @ArjanCodes  2 ปีที่แล้ว

      Thank you so much, glad you like the videos!

  • @RealMineManUK
    @RealMineManUK ปีที่แล้ว +1

    Thank you for the great content, that helps thousands of people, including me, understand complex subjects in a spare time

  • @chriskapoutselis7281
    @chriskapoutselis7281 3 ปีที่แล้ว +1

    Small tip for VSC, if you want to write something across multiple lines you can use multiple cursors by holding ALT and clicking on the spot of the line you wish to write. Love your vids by the way

  • @peteawest
    @peteawest 3 ปีที่แล้ว +2

    I got a lot out of this tutorial. Please keep going with the async series! Bravo

    • @ArjanCodes
      @ArjanCodes  3 ปีที่แล้ว

      Thanks, will do!

  • @burakcelik3752
    @burakcelik3752 2 ปีที่แล้ว

    A Very high quality guide as always. I think even most of people explaining cooperative multitasking don't have a comprehensive knowledge of field and barely know why they do something but just talking about boilerplate examples. Therefore please go on with more advanced approaches about the topic. That would be a real treasure.

  • @presstv
    @presstv 2 ปีที่แล้ว +1

    I enjoyed the video a lot. thanks Arjan🙂 We really needed someone like you in Python community to produce such crucial contents of software design architecture

  • @AndreyPutilov
    @AndreyPutilov 2 ปีที่แล้ว

    Watched two of your videos, on dataclass in python and this asyncio in python. Both are awesome, super, educating and helpful, concise, and do well describe the topic. Usually I prefer articles in text just because it's faster to read. But these videos are just great. No wasted time. Thank you, will continue watching.

    • @AndreyPutilov
      @AndreyPutilov 2 ปีที่แล้ว

      Also, I expected you create a "compound" message so that these actions can still be passed as a structure, something like those "program" veriables defined at the top.

  • @albertsikkema8217
    @albertsikkema8217 2 ปีที่แล้ว

    I was just about to start reading up on asyncio today and just ran into this video (the only one on your channel I haven't watched): Thanks Arjan!

    • @ArjanCodes
      @ArjanCodes  2 ปีที่แล้ว

      You're welcome, Albert! This Friday, there'll be another video you haven't watched yet ;).

  • @roccobrandi6344
    @roccobrandi6344 2 ปีที่แล้ว

    amazing! I have seen a lot of videos on youtube about asyncio, this is the best, clearest explanation I have seen!

  • @GeinponemYT
    @GeinponemYT 2 ปีที่แล้ว

    I'm a bit late to the party, but this video actually made more sense to me than any other asyncio video/tutorial I've seen. Love the run_sequence vs run_parallel implementation, really helps differentiate between the two ways of running code.

  • @kevinw6237
    @kevinw6237 2 ปีที่แล้ว

    Thank you sooooooooooooooooo much. Your videos always make me wonder why hundreds of books and tutorials and online articles I've read just cannot explain things clearly... Anyway... best wishes for you continuing creating awesome content

  • @susmitvengurlekar
    @susmitvengurlekar 3 ปีที่แล้ว +1

    Thanks a lot ! Now I am going to use this knowledge to pararelly merge (average use case: 12 with base data) dataframes based on various conditions ! to speed things up ! You gave me confidence to wander into this unexplored territory !!

    • @ArjanCodes
      @ArjanCodes  3 ปีที่แล้ว +1

      You’re welcome and good luck - sounds challenging, so let me know how it goes!

  • @rollerskaterevival8484
    @rollerskaterevival8484 11 หลายเดือนก่อน

    Thank you for this video! I had a suspicion that writing everything with "await" meany my code was essentially still synchronous. Now I understand what I need to do in order to make it actually async.

    • @ArjanCodes
      @ArjanCodes  11 หลายเดือนก่อน

      Glad the video was helpful in your endeavors!

  • @JohnMatthew1
    @JohnMatthew1 ปีที่แล้ว

    Always love your videos, from start to finish you cover the topic thoroughly. Thank you.

  • @ThePramillionaire
    @ThePramillionaire 3 ปีที่แล้ว

    Thank you so much Arjan! I had requested a video on asyncio a few months back. This was a great intro that helped me understand how to implement it.

  • @ptyspawnbinbash
    @ptyspawnbinbash 3 ปีที่แล้ว

    This was the best asyncio video I have seen. Looking forward to that follow-up video. :)

  • @djl3009
    @djl3009 3 ปีที่แล้ว

    Yes please, more on asyncio with streams and queues! This was another great video -- really like the gradual build up of the examples to effectively highlight the underlying concepts.

  • @thunderbolt997
    @thunderbolt997 2 ปีที่แล้ว

    Finally a good tutorial on asyncio!
    It finally clicked for me.

    • @ArjanCodes
      @ArjanCodes  2 ปีที่แล้ว

      Glad to hear you liked it!

  • @joaovictorpereirarocha33
    @joaovictorpereirarocha33 3 ปีที่แล้ว

    After a couple of tutorials, async makes sense to me with. Thanks a lot, Arjan!

    • @ArjanCodes
      @ArjanCodes  3 ปีที่แล้ว

      Happy to hear you found it helpful!

  • @meh.7539
    @meh.7539 3 ปีที่แล้ว

    I'd love more asyncio content. Identifying parts of the code to convert to ansyncio, how, why, where, etc, would be really helpful for me, personally.
    Thanks again for the quality content!

  • @dorukhansergin9831
    @dorukhansergin9831 2 ปีที่แล้ว

    That last bit when you introduce helpers and enforce synchronous when you want to is what differentiates this tutorial from others. Because it’s super important to prevent race conditions in practice. Great work! (P.S.: The word parallel is IMO misleading because it’s just asyn but it’s not parallel but I can see why you chose that for the purpose of this video)

  • @Mr21666
    @Mr21666 2 ปีที่แล้ว

    Thanks for the video! Now python async/await is much more clear to me!

  • @antonijamiokowski6474
    @antonijamiokowski6474 3 ปีที่แล้ว +1

    Great video Arjan! Please make more videos abour the asynchio

  • @cellisisimo
    @cellisisimo 3 ปีที่แล้ว

    Great asyncio introduction!! Looking forward to the follow up video 😊

  • @86Saurabh1
    @86Saurabh1 3 ปีที่แล้ว

    As usual great video. Here is another vote for follow up on Asyncio.

  • @TankaNafaka
    @TankaNafaka 3 ปีที่แล้ว +1

    I really like the way how you structured simple program and while explaining problems and solutions, how and where to include async. @ 13:00 you nailing the hammer. Greetings from DK 😃

    • @ArjanCodes
      @ArjanCodes  3 ปีที่แล้ว +1

      Thank you, glad to hear you liked it!

  • @robertbrummayer4908
    @robertbrummayer4908 3 ปีที่แล้ว

    Great video, Arjan. I would be interested in more videos about this topic.

  • @SoWhatsAgain
    @SoWhatsAgain 3 ปีที่แล้ว

    Thank you for the video, just in time:) I've got some libs I thought about of couple times to convert them to async, you just encouraged me to do so, I didn't realize that such conversion could be so simple

  • @chriswunder5420
    @chriswunder5420 2 ปีที่แล้ว

    Great Content, thanks so much for the video. I'll be using this for setting up parallel command executions in my UI.
    I definitely want to see the follow up about other details of aysncio!

  • @McRazguz
    @McRazguz 3 ปีที่แล้ว +1

    Unfortunately many don't understand the concept of flushing toilets. Joking! Nice explanation and awesome content!

  • @TechLord79
    @TechLord79 3 ปีที่แล้ว

    I'm having some previous knowledge of async in another language, but alone those two wrappers are just mind-blowing in their elegance and simplicity and use of Python syntactic sugar :O I'm sure my hobbyist scraping projects will benefit from that!

  • @josec.masson4847
    @josec.masson4847 3 ปีที่แล้ว

    Wonderful video Arjan!!

  • @EldorJ10
    @EldorJ10 2 ปีที่แล้ว

    Great video, I suggest adding timer so that we actually see the speed improvement.

  • @jeanchindeko5477
    @jeanchindeko5477 3 ปีที่แล้ว

    Awesome, many thanks for that video. It will be very nice to follow up video with some more advance features of asyncio

  • @martincronje5242
    @martincronje5242 3 ปีที่แล้ว

    Thanks for the video. Loved the simplicity with which this was explained. Would love to see async and streaming video.

  • @ErikS-
    @ErikS- 2 ปีที่แล้ว

    16:48 - My guess is that this probably the only video amongst the total collection of billions of TH-cam videos, which discusses the principle of "cleaning and flushing the toilet at the same time".
    And THAT is what I like about this channel!

    • @ArjanCodes
      @ArjanCodes  2 ปีที่แล้ว

      It’s the minimum requirement for writing clean code 😉.

  • @user-mt8bz6tq5o
    @user-mt8bz6tq5o 3 ปีที่แล้ว

    Great video as always Arjan, keep up the good work!!

  • @takudzwamakusha5941
    @takudzwamakusha5941 3 ปีที่แล้ว +1

    Thanks a lot, would love that follow up video please

  • @adjbutler
    @adjbutler 3 ปีที่แล้ว

    Yes please. More Asynchronous!

  • @bayesian7404
    @bayesian7404 28 วันที่ผ่านมา

    Excellent program design and explanation. I watch one of your videos/day, Thank you so much for your videos.

    • @ArjanCodes
      @ArjanCodes  27 วันที่ผ่านมา

      Glad you like them!

  • @gurudattv9567
    @gurudattv9567 2 ปีที่แล้ว

    nice tutorial. thanks for posting this. this was crisp and clear.

  • @RutNij
    @RutNij 3 ปีที่แล้ว

    Hoi Arjen, super goede tutorial over asyncio. Veel van geleerd wat direct toepasbaar is voor mijn dagelijks werk. Ben zeker geïnteresseerd in een follow-up. Dank voor het delen van jouw kennis en kunde!!

  • @HariTrigger
    @HariTrigger 9 หลายเดือนก่อน

    Definitely would like to see more of asyncio

  • @RS-tx4bu
    @RS-tx4bu 2 ปีที่แล้ว

    Hi Arjan. Excellent video. Brilliant concept of sequential and parallel operations working in unison. Thanks for your time and efforts. Please make the follow up video about Async streams, subprocesses, etc. and if possible, would love to see a video with your take on Async with HTTP requests.

  • @okoeroo
    @okoeroo 2 ปีที่แล้ว

    One of the cleanest explinations.

  • @aravindhm1068
    @aravindhm1068 3 ปีที่แล้ว

    Brilliant, clear and concise.

  • @aadithyavarma
    @aadithyavarma 3 ปีที่แล้ว

    Aysnc in Python is much easier to understand now. Thanks!
    Would love to see the follow up video with more advanced stuff.

  • @python360
    @python360 2 ปีที่แล้ว

    Congrats on 100k - well played sir !

    • @ArjanCodes
      @ArjanCodes  2 ปีที่แล้ว

      Thank you so much

  • @omidgholami2594
    @omidgholami2594 3 ปีที่แล้ว +1

    nice video. a little vscode tip: you can select one part of code which is repeated many times and use F2 for multi cursor and edit them at

    • @ArjanCodes
      @ArjanCodes  3 ปีที่แล้ว

      Thanks and great tip!

    • @MMarcuzzo
      @MMarcuzzo 3 ปีที่แล้ว

      Its really useful, but I guess its more for functions calls or variables which you want to rename

  • @sval4020
    @sval4020 3 ปีที่แล้ว

    Amazingly well served knowledge! Keep up the great work Arjan and YES we would want to see more async deep dive from you!
    In my company we work with a lot of data and mainly build batch and streaming data pipelines using Spark and Kafka. Recently we were faced with the situation where we had to use Faust (python stream processing library mainly built to mimic Kafka Streams for python developers) as a tool to consume Kafka topics and one challenge was (and still is) about how do we join streaming datasets in real-time. Unfortunately streaming joins are not supported in Faust and perhaps we would need to implement these ourselves. Our best candidate for this is indeed asyncio however we haven't yet investigated further how this will play out.
    Again great work. Everyone would love to see more deep dive on the topic!

    • @ArjanCodes
      @ArjanCodes  3 ปีที่แล้ว

      Glad you liked it! I’ll certainly revisit asyncio in the future!

  • @caiovital325
    @caiovital325 3 ปีที่แล้ว +16

    Who wants follow up?? 🤚🤚🤚

  • @ahmedlv5499
    @ahmedlv5499 3 ปีที่แล้ว +1

    yes please dive more into asyncio

  • @Songfugel
    @Songfugel 2 ปีที่แล้ว

    Smart toilet, I would think it's be about water consumption/conservation, pre-heating based on sensors and various other gadgets that are found in more advanced toilets these days. One of the most funny and nice features I have run into when I lived in Japan, were public toilets that started to play forest sounds or classical music when you sat on the toilet, they also had flushing sound button.
    Apparently, many people were flushing the toilet just for the sound, to appear they had been using it, while they had been just resting/sleeping/doing something else. So to save water, they added a flush sound button xD
    ps. this same syntax works in C# as well, which is where they originate from

  • @jupyter5k647
    @jupyter5k647 3 ปีที่แล้ว

    Really helped clear some confusions I had about async programming 👍keep up the awesome videos

  • @babatumises.r.o.5568
    @babatumises.r.o.5568 2 ปีที่แล้ว

    Díky!

  • @random_act
    @random_act ปีที่แล้ว

    absolutely amazing explanation as well as selected example

    • @ArjanCodes
      @ArjanCodes  ปีที่แล้ว

      Thank you for the kind words! Glad I was able to help.

  • @marcinkrezel3640
    @marcinkrezel3640 3 ปีที่แล้ว

    Arjan! You’re the best.

  • @sarveshsawant7232
    @sarveshsawant7232 ปีที่แล้ว

    Perfect video, one small point is things are not parallel they are just concurrent

  • @paulorugal
    @paulorugal 2 ปีที่แล้ว

    Your approach to conveying knowledge is on spot!
    Could you make some video covering "paralellism" with multiprocessing and how to scale it up? Maybe touching containers or clouds?
    Great content and thank you for such videos!

  • @AceofSpades5757
    @AceofSpades5757 3 ปีที่แล้ว

    I've seen a lot of asyncio vids and this was great!

  • @noiseless2
    @noiseless2 3 ปีที่แล้ว

    Thanks Arjan. Good introduction on asyncio. We definitely need more videos on this topic. Maybe doing error handling with monads :-) ?

  • @douglaszickuhr438
    @douglaszickuhr438 3 ปีที่แล้ว

    What an amazing explanation Arjan. Thank you so much!

    • @ArjanCodes
      @ArjanCodes  3 ปีที่แล้ว

      Thank you Douglas, glad you liked it!

  • @golammuhaimeen2825
    @golammuhaimeen2825 3 ปีที่แล้ว

    this is a really great video Arjan! Loved it. Thanks so much!

    • @ArjanCodes
      @ArjanCodes  3 ปีที่แล้ว +1

      Thanks, glad you liked it!

    • @golammuhaimeen2825
      @golammuhaimeen2825 3 ปีที่แล้ว

      @@ArjanCodes if you haven't already can you do a video on GraphQL (graphene) and Unit Testing? Would love to see that!

  • @IgorRibeiroBraga
    @IgorRibeiroBraga 2 ปีที่แล้ว

    It's a very professional video class... Congratulations!!

    • @ArjanCodes
      @ArjanCodes  2 ปีที่แล้ว

      Thank you, glad you liked it!

  • @marioluizbernardinelli2659
    @marioluizbernardinelli2659 3 ปีที่แล้ว

    Wow! This video is awesome! Thank you for sharing your knowledge it with us.

  • @chriscranston6117
    @chriscranston6117 ปีที่แล้ว

    Outstanding video mate, thanks for that :)

    • @ArjanCodes
      @ArjanCodes  ปีที่แล้ว

      Glad you enjoyed it

  • @HeadCodeMonkey82
    @HeadCodeMonkey82 3 ปีที่แล้ว

    Really well presented with good explanations.

  • @dario61081
    @dario61081 3 ปีที่แล้ว

    Hi Arjan, great content!.

    • @ArjanCodes
      @ArjanCodes  3 ปีที่แล้ว

      Thank you so much Dario!

  • @morganbartholomew2892
    @morganbartholomew2892 3 ปีที่แล้ว +1

    Really good video, but Can I make one recommendation, You should never use `Any` in a type annotation, it doesn't mean "any type" it means "don't type check this at all". I think it's a misunderstanding that many people unfamiliar with typing make, and I think it's not a good idea to use it in these kinda of demos as people will get the wrong idea about it's meaning.
    The correct way to type those functions would be:
    async def run_sequence(*functions: Awaitable[object]) -> None:
    for function in functions:
    await function
    async def run_parallel(*functions: Awaitable[object]) -> None:
    await asyncio.gather(*functions)
    The main purpose of `Any` is for migrating un-typed code, not for representing "any type".

  • @abuser-ff8pg1fe9f
    @abuser-ff8pg1fe9f 2 ปีที่แล้ว

    Thank you! Very interesting and informative!

  • @artemk.4368
    @artemk.4368 3 ปีที่แล้ว

    Thanks for explanation, vote for next video about "Asyncronicity" :)

  • @izzikora6751
    @izzikora6751 ปีที่แล้ว

    Did you ever end up doing the follow-up video discussed here with the more in-depth features? This video (like all your videos) was great and I'd love to see more on this

  • @statingtheobviousify
    @statingtheobviousify 2 ปีที่แล้ว

    Thank you so much for this clear and practical explanation! It's really helped things to click for me.

  • @nikhilistt
    @nikhilistt 2 ปีที่แล้ว

    Great video! Please do more videos about asyncio, specially stuff like ensure_future etc.

  • @irfanddins
    @irfanddins 3 ปีที่แล้ว

    Need more of Async!

  • @voinywolnyprod3046
    @voinywolnyprod3046 3 ปีที่แล้ว

    Very detailed and accurate explanation of threads VS asyncio !
    It would be interesting to watch some video devoted to queues with Kafka, Redis

  • @kris_maussen
    @kris_maussen 2 ปีที่แล้ว

    Thanks for the great tutorials ... I'm just a beginner but yeps looking forward to more information of queues, locks, etc. with asyncio.

    • @ArjanCodes
      @ArjanCodes  2 ปีที่แล้ว +1

      Thank you, glad to hear you like them!

  • @astronemir
    @astronemir 2 ปีที่แล้ว

    This was really good, thanks. Would be interested in seeing a deeper dive in the future. Maybe another async program or a code roast of one.

  • @petrnovota8238
    @petrnovota8238 2 ปีที่แล้ว

    Great video, again :) Gonna learn the asyncio basics now, i am doing some web scraping where this is gona be super helpful, and when i am done I hope there will be a folloup in depth asyncio tutorial from you :)

    • @ArjanCodes
      @ArjanCodes  2 ปีที่แล้ว

      Glad it was helpful Petr! I did a follow-up recently you might like as well: th-cam.com/video/GpqAQxH1Afc/w-d-xo.html.

  • @dmytrokorbanytskyi1586
    @dmytrokorbanytskyi1586 3 ปีที่แล้ว

    Thanks! I'm 'await' for more videos about async ))

  • @mihaimyh99
    @mihaimyh99 3 ปีที่แล้ว +2

    Finally, great async Python video. One question: running in parallel means running those methods each on different thread?

    • @amir3515
      @amir3515 3 ปีที่แล้ว +2

      Python does not support true parallelism

    • @ArjanCodes
      @ArjanCodes  3 ปีที่แล้ว +1

      Thank you! Internally asyncio uses an event loop that handles the various asynchronous operations, callbacks after a network request has completed and so on, and this is all hidden behind the async/await syntax. It's not true parallelism (= executing multiple tasks at the same time), but it is concurrency (= multiple tasks are in progress at the same time).

  • @aldrickdev
    @aldrickdev 2 ปีที่แล้ว

    Great Video!! I'd definitely would love to see more on this topic. I've seen other videos that use tasks and other stuff from the asyncio library. Your approach if much more understandable.