0

Pythonでマルチプロセッシングプールを使用するこれは私がやろうとしていることです:

def do_task(data):
   print "Executing: " + data
   return data

def do_something(data):
   print "Starting do_something"
   result2 = pool.map_async(do_task, ["AA","BB"])  
   print "before get"
   result2.get()
   print "after get"
   return data

def main():
    pool = Pool(processes=4)             
    result = pool.apply_async(do_something, "A")  
    print result.get()

ただし、ここでは出力は機能しません。

Starting do_something
before get

ここでスタックしたままになり、do_taskが呼び出されることはありません。Ca誰かが私に理由を説明しますか?ありがとうございました

4

2 に答える 2

0

タイプミスですか?result2.get()であってはなりません

于 2013-01-14T09:55:06.663 に答える
0

@ Johny19そのコード(指摘されたタイプミスを削除することにより、正常に機能します。コードのどこかで、.close()属性を忘れたか間違ったタイミングで呼び出したと思います。

于 2013-01-14T10:44:22.717 に答える