Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
12
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

@matsui-k20xx

Pythonの async/await, asyncio の使い道

Pythonの async/await, asyncio の使い道

Pythonのasync/awaitは、C#などと違って、全部一つのスレッド上でやるので、CPUバウンドな処理や、大きなファイルを保存するようなI/Oバウンドな処理を速くするのは無理。

通信を待ってる自分が何もしてない時間に他の処理をやりたいようなときに使える。

CPUバウンドなときはmultiprocessingやconcurrent.futures.ProccessPoolExecutorを使うべし

I/Oバウンドなときはconcurrent.futures.ThreadPoolExecutorを使うべき

async await

このブログがわかりやすい
ゆくゆくは有へと: Pythonの非同期通信(asyncioモジュール)入門を書きました

async awaitでマルチプロセスやマルチスレッドを使う

loop.run_in_executorを使えば、concurrent.futures.ThreadPoolExecutorに渡した関数の完了をawaitすることができる。
Executing code in thread or process pools

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
12
Help us understand the problem. What are the problem?