python2.5 多进程池

1 投票
1 回答
746 浏览
提问于 2025-04-16 03:54

我有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语句里面?我怀疑如果不这样做,它可能会不停地生成新的进程,导致程序卡住。

撰写回答