代码之家  ›  专栏  ›  技术社区  ›  Evg

python2.5多处理池

  •  1
  • Evg  · 技术社区  · 15 年前

    我有python2.5和多处理(从 http://code.google.com/p/python-multiprocessing/ )

    这个简单的代码(从文档中获取)有时工作得很奇怪,有时还可以,但有时它抛出超时Ex或挂起我的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 回复  |  直到 15 年前
        1
  •  4
  •   nikow    15 年前

    这只是一个疯狂的猜测,但你有没有试图移动 Pool 创建到 if 街区?我怀疑,否则它可能会产生无限数量的新进程,从而导致冻结。