这是代码
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)
另外,正确的结果应该是什么呢?谢谢