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

时间:2018-02-07 09:51:02

标签: python python-3.x python-multiprocessing

我在Linux上使用python 3.6,我使用的是python的多处理库,直到我切换到Windows 10才工作。首先,我认为这是因为多处理库没有&#39 ;在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)

1 个答案:

答案 0 :(得分:-1)

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,range(300)),它将返回数据的内存位置。如果您说p = Pool(),它将启动CPU可以处理的最大进程数。