尝试用concurrent.futures.ProcessPoolExecutor()实现大量计算密集型的多进程并行处理,
写了段测试代码,结果在两台电脑上出现完全不同的结果,win10下似乎没有执行代码,也没有报错,查阅资料也没找到解决办法。
请教大咖,win10下出现此问题的原因,及解决办法,感谢!
电脑1:ubuntu 18.04,jupyter notebook,结果如下:
import concurrent.futures
nnn = [1,2,3,4,5]
def test(x):
print(x)
print(x)
print(x)
if __name__ == '__main__':
with concurrent.futures.ProcessPoolExecutor() as executor:
print('start')
executor.map(test,nnn)
print('end')
"""
输出:
start
1
2
4
3
1
3
2
4
1
3
2
4
5
5
5
end
"""
电脑二:windows10,jupyter notebook,结果如下:
import concurrent.futures
nnn = [1,2,3,4,5]
def test(x):
print(x)
print(x)
print(x)
if __name__ == '__main__':
with concurrent.futures.ProcessPoolExecutor() as executor:
print('start')
executor.map(test,nnn)
print('end')
"""
输出:
start
end
"""