【非同期処理】Pythonの async / await 構文を使ってみよう!

Поділитися
Вставка
  • Опубліковано 21 лип 2024
  • Pythonプログラミングに関する情報を発信しているサプーです!
    この動画はPythonの非同期処理 async / await構文について解説している動画です!
    ・async / await とは?
    ・どうやって非同期に処理を実行させるの?
    これらについて説明しています💙
    実際にAzureのPythonSDKを使って非同期のファイルダウンロードを行なっているので、最後まで見てもらえたら嬉しいです😊
    💙 メンバーシップ 💙
    説明動画 ▶︎ • 【ご報告】本日からメンバーシップ開始します!...
    登録 ▶︎ / @pythonvtuber9917
    iPhoneの方はこらから ▶︎ PythonSuppl/statu...
    💻環境💻
    Python 3.10
    Windows 10
    🎥 関連動画 🎥
    並列処理 ▶︎ • 【Pythonプログラミング】並列処理の基本...
    ⭐️ チャプター ⭐️
    0:00 オープニング
    0:31 非同期処理 async / awaitとは?
    3:06 awaitで待つ
    7:55 taskで並行処理
    9:24 gather
    10:35 run_in_executor
    12:13 タイムアウト
    13:30 Azureの非同期ファイルダウンロード
    16:37 エンディング
    💜 チャンネル説明 💜
    Pythonプログラミングについて解説するVtuber サプーです✨
    初心者でも分かりやすく、Pythonを体系的に学習できるような動画をアップロードしていきます!
    みんなが少しでもPythonが好きになってくれたら嬉しいな💕
    Twitterもやってるので、フォローお願いします!
    Twitter ▶︎ / pythonsuppl
    メール ▶︎ python.supu.vtuber@gmail.com
    #非同期処理
    #async
    #await
    #python
    #パイソン
    #PythonVTuberサプー
  • Наука та технологія

КОМЕНТАРІ • 26

  • @wbaby0716
    @wbaby0716 11 місяців тому +1

    サプーさんの分かりやすい動画でPythonの理解が深まったので、久しぶりの更新嬉しいです!

    • @pythonvtuber9917
      @pythonvtuber9917  11 місяців тому +3

      ありがとうございます!時間がとれず更新間隔が空いてしまいがちですが、秋以降も少しずつ出していきたいです!

  • @user-tn1qk5nk6u
    @user-tn1qk5nk6u 11 місяців тому +2

    非同期処理UPありがとうございます✨応用できるように勉強させていただきます!

    • @pythonvtuber9917
      @pythonvtuber9917  11 місяців тому

      勉強のお役に立っていたら嬉しいです!

  • @user-ub9yv7mo7r
    @user-ub9yv7mo7r 11 місяців тому +1

    久しぶりの動画嬉しすぎる!!

    • @pythonvtuber9917
      @pythonvtuber9917  11 місяців тому +1

      そう言ってもらえて嬉しいです!秋以降も定期的に出せるよう頑張りたいです!

  • @user-xv5ep5fj5e
    @user-xv5ep5fj5e 11 місяців тому

    ありがとうございます!

    • @pythonvtuber9917
      @pythonvtuber9917  11 місяців тому +1

      参考にしてもらえたら嬉しいです!

  • @Ratete
    @Ratete 11 місяців тому +1

    DiscordBotでちょうど非同期処理扱っていたところだったので参考にします!

    • @pythonvtuber9917
      @pythonvtuber9917  11 місяців тому

      DiscordのPython APIにもコルーチンありますね!ぜひ、参考にしてもらえたら嬉しいです!

  • @SakretteAmamiya
    @SakretteAmamiya 10 місяців тому

    サプーさんお久しぶりです!
    今回のasync/await紹介めっちゃ役立ってありがとうございます!
    使いやすい構文ですね。
    質問あります。
    async/awaitはthreadingとmultiprocessingと似てますが、どんな場合でどっち使いほうがいい?

    • @pythonvtuber9917
      @pythonvtuber9917  10 місяців тому +1

      おひさしぶりです!!
      私の場合ですが、使い分けはCPUバウンドの場合はmultiprocessing、I/Oバウンドの場合でデータ共有がある場合はthreading、I/Oバウンド・APIやライブラリ呼び出しでasync/await構文を使える時にasync/awaitを使うかなー、と思います!

  • @yosshi2028
    @yosshi2028 11 місяців тому +1

    お久しぶりですね

  • @MikuHatsune-np4dj
    @MikuHatsune-np4dj 11 місяців тому

    ひさしぶりです!

  • @user-dc1yt2fn8s
    @user-dc1yt2fn8s 11 місяців тому

    質問です。7:20辺りのfunctionの引数にどの辺りで値を返していますか?

    • @user-dc1yt2fn8s
      @user-dc1yt2fn8s 11 місяців тому

      11~12行目辺りですか?

    • @pythonvtuber9917
      @pythonvtuber9917  11 місяців тому +1

      そうです!11~12行目のresult_1= とresult_2=の部分に代入されます!

  • @akrs4102
    @akrs4102 11 місяців тому

    どういう違いなのか分かりませんが、タイムアウトの所でfunction_1の中身をloop.run_in_executorを使う方のままにしておくと3秒で「タイムアウト」と「main終了」は表示されますが、その後プログラム終了するまでは結局10秒待つような動きになりますね。asyncio.run(main())の次の行にprint("end")とすると表示に10秒ほどかかるので

    • @pythonvtuber9917
      @pythonvtuber9917  11 місяців тому +2

      timeのsleepは協調的マルチタスク(cooperative multitasking)ではないため スレッドもイベントループも全てストップさせるためスクリプト自体が終了しないようです(StackOverflow参考)。
      参考: stackoverflow.com/questions/61876399/python-asyncio-wait-for-synchronous

    • @akrs4102
      @akrs4102 11 місяців тому

      @@pythonvtuber9917 そうなんですね、ありがとうございます!