Windows 10上的多处理python 3.6无法正常工作

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (45)

我在Linux上使用python 3.6,我正在使用python的多处理库,直到我切换到Windows 10才工作。首先,我认为这是因为多处理库在Linux和Windows上的工作方式不同,所以我确保我的所有变量都是可选的但没有结果。

然后,我想看看多处理池是否正常工作,我尝试了这段代码:(多处理文档中的基本示例)

from multiprocessing import Pool

def f(x):
    return x*x

if __name__ == '__main__':
    p = Pool(5)
    print(p.map(f, [1, 2, 3]))

它不起作用,当我检查任务管理器中的处理器时,只使用了1%。

我也尝试了p.map_async,它工作但是当我尝试得到结果(p.map_async().get())它不起作用(RuntimeError)

提问于
用户回答回答于
from multiprocessing import Pool

def f(x):
    return x*x

if __name__ == '__main__':
    p = Pool(5)
    results = p.imap(f,range(300))
    for item in results:
        print(item)
    p.close()

这将打印按顺序返回的项目。如果你打印(p.imap(f,范围(300))它返回数据的内存位置。如果你说p = Pool()它将启动你的CPU可以处理的最大进程数。

扫码关注云+社区

领取腾讯云代金券