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()

KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^