在线程内调用map_async不起作用

时间:2013-01-14 02:12:27

标签: python multiprocessing

在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永远不会被调用。有人解释我为什么? 谢谢

2 个答案:

答案 0 :(得分:0)

这是一个错字吗?不应该是result2.get()

答案 1 :(得分:0)

@ Johny19 该代码(通过删除拼写papachino指出工作正常 我想你的代码中的某个地方忘记了或者在错误的时间调用了.close()属性......