2

asyncioの使い方を理解する必要があると感じていますが、この新しいテクニックを学ぶのに役立つ問題(または問題のセット)は考えられません。Python asyncioトレーニングエクササイズ

実際にasyncioの使い方を理解して学ぶのに役立つ問題を提案できますか?

別の言葉で言えば、実際にasyncioを使用する方法を学ぶのに役立つ抽象的な問題やアプリケーションの例を教えてください。

あなたは

+0

[netcat](http://netcat.sourceforge .net /)[cat](https://en.wikipedia.org/wiki/Cat_%28Unix%29)、[asyncio subprocess](https://docs.python.org/3/library/asyncio-subprocess .html)と[asyncio streams](https://docs.python.org/3/library/asyncio-stream.html)を参照してください。または[Webクローラー](http://aosabook.org/en/500L/a-web-crawler-with-asyncio-coroutines.html)。 – Vincent

+0

ありがとうございます。それをやろうとします。 – Xeizzen

+0

メインページから開始してサイト上のすべてのリンクを収集するクローラを作成します(テストするサイトをほとんど選択しないでください)。クローラは、URLをパラレルに要求する必要があります(例:aiohttpを使用して、https://stackoverflow.com/a/35900453/1113207を参照)。並列接続の数を制限するには、セマフォを使用します。 https://docs.python.org/3/library/asyncio-sync.html#asyncio.Semaphore –

答えて

2

どれI/Oバウンドのタスクasyncioのために良いケースでしょうありがとうございます。ネットワークプログラミングのコンテキストでは、何千もの接続を同時に処理する必要があります。 Webサーバー、Webクローラー、チャットバックエンド、MMOゲームバックエンド、トレントトラッカーなどが含まれます。ただし、データベースドライバなどの入出力をブロックするすべてのライブラリの非同期バージョンを使用することをお勧めします。