非同期プログラミングが熱い pythonで並列処理を実現するにはすごくざっくりいって3つの選択肢がある。 マルチスレッド方式 (モジュール名: concurrent.futures, threading) マルチプロセス方式 (モジュール名: concurrent.futures, multiprocessing, subprocess) 非同期I/O方式 (モジュール名: asyncio) マルチスレッド方式はスレッドセーフにプログラム作るのが本当に(本当に!)難しいし、マルチプロセス方式はデータの共有が煩雑。これに比べて非同期I/O方式はめちゃくちゃ簡単に並列処理が書けるので CPU処理が主体でないような処理では、非同期I/O方式による実装が人気を集めている( 非同期I/O方式では1CPU しか使えないのは注意)。非同期I/O方式の興隆は python に限ったことではなく、Javas
![まだ await 使ってないの? - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/e5583828cab5076f8315e12e3647313449481cfc/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUUzJTgxJUJFJUUzJTgxJUEwJTIwYXdhaXQlMjAlRTQlQkQlQkYlRTMlODElQTMlRTMlODElQTYlRTMlODElQUElRTMlODElODQlRTMlODElQUUlRUYlQkMlOUYmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtY2xpcD1lbGxpcHNpcyZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWJlMDRmZGYzZjc3NjZiZDk4ZmY1MzRiMjViMWExZWJi%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwNDFzZW1pY29sb24mdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTgyY2QzNjE4Y2U4ZWNiMDIxMDEzYzEyMDgyOGFmZDlm%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D2d5ed48d952275c6702f352ce0b12b91)