from concurrent.futures.thread import ThreadPoolExecutor
import time
# 待つ関数を3つ用意する。
def wait_one_second():
time.sleep(1)
print("1秒間待つ処理が終了しました。")
def wait_five_seconds():
time.sleep(5)
print("5秒間待つ処理が終了しました。")
def wait_ten_seconds():
time.sleep(10)
print("10秒間待つ処理が終了しました。")
# それらを束ねる関数を、普通に処理する場合と、並行処理する場合、それぞれ作る。
def run_normally_without_arg():
""" 普通に処理する場合 """
wait_ten_seconds()
wait_five_seconds()
wait_one_second()
def run_concurrent_without_arg():
""" 並行処理する場合 """
with ThreadPoolExecutor() as executor:
executor.submit(wait_ten_seconds)
executor.submit(wait_five_seconds)
executor.submit(wait_one_second)
run_normally_without_arg()
run_concurrent_without_arg()
executor.submit(wait_some_seconds, 10, "おけ")
のようにexecutor.submit(実行したい関数, 第一引数, 第二引数,・・・)
とするfrom concurrent.futures.thread import ThreadPoolExecutor
import time
def wait_some_seconds(length_in_second,word):
time.sleep(length_in_second)
print(f'{length_in_second}秒間待つ処理が終了しました。 第二引数→{word}')
def run_normally_with_arg():
""" 普通に処理する場合 """
wait_some_seconds(10, "あ")
wait_some_seconds(5, "い")
wait_some_seconds(1, "う")
def run_concurrent_with_arg():
""" 並行処理を行う関数 """
with ThreadPoolExecutor() as executor:
executor.submit(wait_some_seconds,10,"あ")
executor.submit(wait_some_seconds,5,"い")
executor.submit(wait_some_seconds,1,"う")
run_normally_with_arg()
run_concurrent_with_arg()