ProcessPoolExecutor()在ubuntu下执行与在win10下执行的差异,请教!

尝试用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
"""

 

windows有输出,应该是你jupyter notebook的问题

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632