Python 多处理不是调用函数



我试图理解多处理在Python中是如何工作的。这是一个简单的代码,它没有像我预期的那样调用函数。

import time
import multiprocessing
def do_something():
print('Sleep')
time.sleep(1)
print('Wake up')
start = time.perf_counter()
p1 = multiprocessing.Process(target=do_something)
p2 = multiprocessing.Process(target=do_something)
p1.start()
p2.start()
p1.join()
p2.join()
finish = time.perf_counter()
print(f'Finished in {round(finish-start, 2)} second(s)')

Jupyter Notebook中,执行后我得到以下输出:

Finished in 0.2 second(s)

我想它会像这样:

Sleep
Sleep
Wake up
Wake up
Finished in 0.2 second(s)

我错过了什么?

您应该查看"编程指南"(https://docs.python.org/3/library/multiprocessing.html#multiprocessing-programming(以找出为什么需要:

if __name__ == '__main__' :

保护使用多处理的脚本。由于您的笔记本中没有它,因此它将无法正常工作。

相关内容

  • 没有找到相关文章