我在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)
答案 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可以处理的最大进程数。