相关疑难解决方法(0)

Python多处理apply_async永远不会在Windows 7上返回结果

我试图遵循一个非常简单的多处理示例:

import multiprocessing as mp

def cube(x):
    return x**3

pool    = mp.Pool(processes=2)
results = [pool.apply_async(cube, args=x) for x in range(1,7)]
Run Code Online (Sandbox Code Playgroud)

但是,在我的Windows机器上,我无法获得结果(在ubuntu 12.04LTS上运行完美).

如果我检查results,我看到以下内容:

[<multiprocessing.pool.ApplyResult object at 0x01FF0910>,
 <multiprocessing.pool.ApplyResult object at 0x01FF0950>,
 <multiprocessing.pool.ApplyResult object at 0x01FF0990>,
 <multiprocessing.pool.ApplyResult object at 0x01FF09D0>,
 <multiprocessing.pool.ApplyResult object at 0x01FF0A10>,
 <multiprocessing.pool.ApplyResult object at 0x01FF0A50>]
Run Code Online (Sandbox Code Playgroud)

如果我跑,results[0].ready()我总是得到False.

如果我运行results[0].get()python解释器冻结,等待获得永远不会到来的结果.

这个例子很简单,所以我认为这是一个与操作系统相关的低级错误(我在Windows 7上).但也许别人有更好的主意?

python windows multiprocessing

5
推荐指数
2
解决办法
8223
查看次数

标签 统计

multiprocessing ×1

python ×1

windows ×1