concurrent.futuresモジュールのThreadPoolExecutorクラスを使用した並列実行 – 【Python】

concurrent.futuresモジュールのThreadPoolExecutorクラスを使用した並列実行 – 【Python】

Pythonで並列実行を扱う為にconcurrent.futuresモジュールのThreadPoolExecutorクラスを使用します。

2秒かかる関数(スリープさせるだけ)を用意します。

def task(name):
    time.sleep(2) # 2秒スリープ
    print(f"Task {name} completed")

main処理です。

max_workersで指定する値はスレッドの最大数です。

concurrent.futures.wait()の引数に複数のFutureオブジェクトを指定して、複数のタスクの完了を待ちます。

def main():
    with concurrent.futures.ThreadPoolExecutor(max_workers=10) as executor:
        futures = [executor.submit(task, i) for i in range(1, 5)] # タスクをsubmitして並列実行
        concurrent.futures.wait(futures) # 全タスクの完了を待つ

全ソースです。

import concurrent.futures
import time

def task(name):
    time.sleep(2) # 2秒スリープ
    print(f"Task {name} completed")

def main():
  with concurrent.futures.ThreadPoolExecutor(max_workers=10) as executor:
      futures = [executor.submit(task, i) for i in range(1, 5)] # タスクをsubmitして並列実行
      concurrent.futures.wait(futures) # 全タスクの完了を待つ

if __name__ == "__main__":
    main()

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました