python2.5 多进程池
我有Python 2.5和多进程处理的库(可以从http://code.google.com/p/python-multiprocessing/下载)。
这段简单的代码(来自文档)有时候运行得很奇怪,有时正常,但有时会出现超时错误,或者让我的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
1 个回答
4
这只是我随便猜的,但你有没有试过把Pool
的创建放到if
语句里面?我怀疑如果不这样做,它可能会不停地生成新的进程,导致程序卡住。