Python 3.8.4で並列処理をしようと考えております。
下記のようなコードを書くと、グローバルに存在する「print("aaaa")」が4度呼ばれます。
なぜでしょうか?また、これを起こさないためにはどうすればよいのでしょうか。
Python
1import concurrent.futures as confu 2import time 3 4print("aaaa") 5 6def task(v): 7 print("start", v) 8 time.sleep(1.0) 9 print("end", v) 10 11def main(): 12 print("main start") 13# - - - - 処理開始 - - - - # 14 with confu.ProcessPoolExecutor(max_workers=3) as executor: 15 executor.submit(task, 5) 16 executor.submit(task, 10) 17 print("submit end") 18 19# - - - - 並列処理が終わった後 - - - - # 20 print("main end") 21 22if __name__ == '__main__': 23 main()
Console
1aaaa 2main start 3submit end 4aaaa 5aaaa 6aaaa 7start 5 8start 10 9end 5 10end 10 11main end
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/24 14:45
2020/07/24 14:55
2020/07/25 03:21