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(ES20xx),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
