#concurrent.futuresを用いてマルチプロセスを行い、その際プロセス間で変数の共有を行いたいです。
threadingやTreadPoolExecutorを用いたマルチスレッドでは実現できましたが、
ProcessPoolExecutorの使い方がわかりませんでした。
リンク先なども調べてみた結果、マルチプロセスではグローバル変数を用いても、プロセス間で値が共有されないことはわかりましたが、value,arrayをどのように使えばよいか理解できませんでした。
python3
1import concurrent.futures 2import time 3 4a = 0 5 6 7def func1(): 8 print("[1]スタート") 9 time.sleep(5) 10 print("5秒経過") 11 global a 12 a = 1 13 14def func2(): 15 print("[2]スタート") 16 while True: 17 if (a == 1): 18 print("値の共有を確認") 19 break 20 21 22if __name__ == "__main__": 23 24 with concurrent.futures.TreadPoolExecutor(max_workers=2) as executor: 25 executor.submit(func1) 26 executor.submit(func2)
上記のコードはマルチスレッドで実際に動かすことができたものです。
(細かい処理は省略して、変数の値を共有できたか確認する部分のみにしています)
func1とfunc2をマルチプロセスで動かし、値を共有するにはどのようにコードを書けばよいでしょうか。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。