私は並列に関数を実行するpythonプログラムを書いています。私はsqr
とcube
関数の戻り値を得ることができる方法のアイデアを持っていないPythonでマルチプロセッシングプロセスの関数の戻り値を格納する方法は?
from multiprocessing import Process
def sqr(args):
results = []
for i in args:
results.append(i*i)
return results
def cube(args):
results = []
for i in args:
results.append(i*i*i)
return results
def main():
data = [1,2,3,4,5]
p1 = Process(target=sqr, args=(data,))
p1.start()
p2 = Process(target=cube, args=(data,))
p2.start()
p1.join()
p2.join()
main()
:ここではコードです。
私はこれを試してみました:
from multiprocessing import Process
from queue import Queue
def sqr(args, q):
results = []
for i in args:
results.append(i*i)
q.put(results)
def cube(args, q):
results = []
for i in args:
results.append(i*i*i)
q.put(results)
def main():
q = Queue()
data = [1,2,3,4,5]
p1 = Process(target=sqr, args=(data, q))
p1.start()
p2 = Process(target=cube, args=(data, q))
p2.start()
p1.join()
p2.join()
print(q.get())
main()
このプログラムは無限の時間のために一時停止します。私はここで何がうまくいかないのか分からないのですか? 誰でも私を助けることができます、どのように関数の返品結果を保存することができますか?どんな助けもありがとう。
Python2または3を使用していますか? –
私はpython 3を使用しています – Amit
あなたはどんなOSをお使いですか? – roganjosh