前提
ThreadPoolExecutorを使って二つのプロセスを並列処理しています
実現したいこと
片方の処理が終了した時点で、もう一方の処理も中断してプログラムを終了させたいです
発生している問題・エラーメッセージ
下記のプログラムを実行して、exit()
でプログラムを終了させることを期待していたのですが、終了しませんでした。
time_exit関数が終了した後もloop関数の出力が止まらず、time_exitが終了した時点でloop関数を終了させるためにはどうしたらよいか、ご教示いただけますと幸いです。
宜しくお願い致します。
該当のソースコード
Python
1import time 2from concurrent.futures import ThreadPoolExecutor 3 4def loop(): 5 while True: 6 print("hello") 7 time.sleep(1) 8 9def time_exit(): 10 print("time_exit") 11 time.sleep(5) 12 print("exit") 13 exit() 14 15print("start") 16executor = ThreadPoolExecutor(max_workers=2) 17executor.submit(time_exit) 18executor.submit(loop) 19executor.shutdown()
試したこと
「ThreadPoolExecutor 強制終了」などで検索して見たのですが、解決に至るような記事を見つけることができなかったため、お力をお借りしたく質問した次第です。
補足情報(FW/ツールのバージョンなど)
python 3.7.7

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/07/14 13:24