我有python2.5和多处理(来自http://code.google.com/p/python-multiprocessing/)
这个简单的代码(来自docs),不时有点奇怪,有时候还可以,但有时会抛出超时或挂起我的Windows(Vista),只有重置帮助:)为什么会发生这种情况?
from multiprocessing import Pool
def f(x):
print "fc",x
return x*x
pool = Pool(processes=4)
if __name__ == '__main__':
result = pool.apply_async(f, (10,)) # evaluate "f(10)" asynchronously
print result.get(timeout=3) # prints "100" unless your computer is *very* slow
答案 0 :(得分:4)
这只是一个疯狂的猜测,但您是否尝试将Pool
创建移动到if
区块?我怀疑否则它可能会产生无限数量的新进程,导致冻结。