2013-01-14 62 views
0

一个线程中这就是我想要做的事:调用map_async使用蟒蛇 多处理池不工作

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

+0

那么,你永远不会叫'do_task' – Dikei

+0

抱歉编辑错误 – Johny19

回答

0

@ Johny19 该代码( ...

+0

Omg是你是在我的代码底部有权关闭,这是在工作有机会完成之前调用.... – Johny19

0

这是一个错字吗?它不应该被result2.get()通过移除错字papachino指出,正常工作 我认为地方在你的代码,你忘了或在错误的时间调用.close()属性