windows 10上的多处理python 3.6不工作
我在Linux上使用Python3.6,我使用python的多处理库,它一直在工作,直到我切换到Windows10。首先,我认为这是因为多处理库在Linux和Windows上的工作方式不同,所以我确保所有变量都是可拾取的,但没有结果 然后,我想看看多处理池是否正常工作, 我尝试了以下代码:(多处理文档中的基本示例) 它不起作用,当我在任务管理器中检查处理器时,只使用了1% 我还尝试了windows 10上的多处理python 3.6不工作,python,python-3.x,python-multiprocessing,Python,Python 3.x,Python Multiprocessing,我在Linux上使用Python3.6,我使用python的多处理库,它一直在工作,直到我切换到Windows10。首先,我认为这是因为多处理库在Linux和Windows上的工作方式不同,所以我确保所有变量都是可拾取的,但没有结果 然后,我想看看多处理池是否正常工作, 我尝试了以下代码:(多处理文档中的基本示例) 它不起作用,当我在任务管理器中检查处理器时,只使用了1% 我还尝试了p.map\u async,但当我尝试获取结果(p.map\u async().get())时,它不起作用(运行时
p.map\u async
,但当我尝试获取结果(p.map\u async().get()
)时,它不起作用(运行时错误)
这将按顺序打印返回的项目。如果您打印(p.imap(f,range(300)),它将返回数据的内存位置。如果您说p=Pool(),它将启动CPU可以处理的最大进程数。RuntimeError是否为您提供了更多信息?显示的代码会发生什么情况(是否冻结或引发异常)?你找到解决方案了吗?请分享。@Jean-François Fabre:解决方案的另一个位置在哪里?啊,看看问题的顶部。这是一个已知的UI烦恼,人们看到“重复”,但没有顶部的链接在windows 10上不起作用
from multiprocessing import Pool
def f(x):
return x*x
if __name__ == '__main__':
p = Pool(5)
print(p.map(f, [1, 2, 3]))
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()