【发布时间】:2020-04-27 19:04:50
【问题描述】:
我尝试运行多处理的简单示例,但它不起作用
当我尝试使用线程或以常规方式运行相同的功能时
多处理(不工作):
import multiprocessing
def do_something():
print('Sleeping 1 second...')
time.sleep(1)
print('Done sleeping')
p1 = multiprocessing.Process(target=do_something)
p2 = multiprocessing.Process(target=do_something)
p1.start()
p2.start()
带线程(工作):
import threading
def do_something():
print('Sleeping 1 second...')
time.sleep(1)
print('Done sleeping')
t1 = threading.Thread(target=do_something)
t2 = threading.Thread(target=do_something)
t1.start()
t2.start()
【问题讨论】:
-
我运行了代码,两个示例都在我的 jupyter notebook 上运行。这可能会有所帮助:stackoverflow.com/questions/47313732/…
-
尝试在 do_something 函数调用之后加上括号,例如
do_something()。您的代码在我添加括号后运行,但它没有产生多个进程 -
请给我们错误信息或其他解释为什么它不工作。您还应该告诉我们您的环境。如果您使用的是 mac、linux 或 windows,这就是其中一种重要的情况。
-
括号绝对不是这里要做的事情。是的,如果问题出现在我期望的地方,代码可能会运行,但它不会创建进程。它只是在现场运行该功能。
标签: python python-multiprocessing