多进程代码在pycharm和shell中执行的结果为什么不一样?

这是代码


import concurrent.futures

import time



start = time.perf_counter()





def do_something(seconds):

    print(f'Sleeping {seconds} second(s)...')

    time.sleep(seconds)

    return f'Done Sleeping...{seconds}'




if __name__ == "__main__":
    with concurrent.futures.ProcessPoolExecutor() as executor:
        secs = [5, 4, 3, 2, 1]
        results = executor.map(do_something, secs)
    for result in results:
        print(result)



finish = time.perf_counter()



print(f'Finished in {round(finish-start, 2)} second(s)')

这是在pycharm里的结果

Finished in 0.0 second(s)
Finished in 0.0 second(s)
Finished in 0.0 second(s)
Finished in 0.0 second(s)
Finished in 0.0 second(s)
Finished in 0.0 second(s)
Sleeping 5 second(s)...
Sleeping 4 second(s)...
Sleeping 3 second(s)...
Finished in 0.0 second(s)
Sleeping 2 second(s)...
Finished in 0.0 second(s)
Sleeping 1 second(s)...
Done Sleeping...5
Done Sleeping...4
Done Sleeping...3
Done Sleeping...2
Done Sleeping...1
Finished in 5.33 second(s)

这是shell里的结果

Done Sleeping...5
Done Sleeping...4
Done Sleeping...3
Done Sleeping...2
Done Sleeping...1
Finished in 5.24 second(s)

另外,正确的结果应该是什么呢?谢谢

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^