\

Pythonのconcurrent.futuresモジュールは、非同期に呼び出し可能なオブジェクトを実行するための高レベルインターフェースを提供します。このモジュールは、スレッドを使用したThreadPoolExecutor、または別のプロセスを使用したProcessPoolExecutorで非同期実行を行うことができます。両者は同じインターフェースを実装しており、そのインターフェースは抽象的なExecutorクラスによって定義されています。

以下に、concurrent.futuresを使用した並列タスクの実行方法を示します。

from concurrent.futures import ThreadPoolExecutor

def task(v):
    print(f"{v} start")
    time.sleep(1.0)
    print(f"{v} end")
    return v * 2

with ThreadPoolExecutor(max_workers=2) as executor:
    futures = []
    for i in range(5):
        futures.append(executor.submit(task, i))
    print([f.result() for f in futures])

このコードでは、ThreadPoolExecutorを使用して最大2つのタスクを同時に実行します。executor.submitメソッドを使用してタスクを追加し、その結果をFutureオブジェクトとして受け取ります。最後に、すべてのFutureオブジェクトの結果をリストとして出力します。

このように、Pythonのconcurrent.futuresモジュールを使用すると、複数のタスクを簡単に並列に実行することができます。これにより、プログラムのパフォーマンスを向上させることが可能になります。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です