
多くのことを行う
7.
並列実行
11 3/4
章では、スレッドを利用して待ち時間問題を解決しました。コードの並
列実行に関してはスレッドが唯一の手段ではないのに、正直なところ利用できる
手法の中でスレッドが最も利用され乱用されています。この本では、意図的にス
レッドをできるだけシンプルに使うようにしました。
一度に複数のことを実行しなければならないときに利用できるテクニックは他
にもあります。すべてのプログラムでこのようなサービスが必要なわけではあり
ませんが、
Python
には多くの選択肢があることを覚えておきましょう。
threading
モ ジ ュ ー ル の 他 に も 優 れ た モ ジ ュ ー ル が あ り ま す(
Doug
Hellmann
がこれらのメソッドの一部について素晴らしい投稿をしているので、
前ページも読んでください)。
●
multiprocessing
:複数の
Python
プロセスを発生させることができ、
(複数の
CPU
コアがあれば)多数の
CPU
に計算負荷を分散できる。
●
asyncio
:コルーチンを作成して設定することで並列処理を規定できる。
これは
Python 3
の比較的新しい追加機能なので、(多くのプログラマにとっ
て)とても新しい考え方である(そして、まだ判断は下されていない)。
●
concurrent.futures
:複数のタスクを同時に管理し実行できる。
上のどれが適しているかは、それぞれを試してみたらわかるでしょう。
新たなキーワード:
async
と
awa