我试图同时运行2个进程,但只运行第一个进程
def add():
while True:
print (1)
time.sleep(3)
def sud():
while True:
print(0)
time.sleep(3)
p1 = multiprocessing.Process(target=add)
p1.run()
p = multiprocessing.Process(target=sud)
p.run()
答案 0 :(得分:4)
下面的确可以使用,但尝试将其作为模块运行。不要在控制台或Jupiter笔记本中尝试,因为笔记本永远不会满足条件"如果名称 == ' 主要强>'&#34 ;. 将整个代码保存在文件中,例如process.py,然后从命令提示符运行它。 编辑 - 它工作正常。刚才我试过 -
import multiprocessing
import time
def add():
while True:
print (1)
time.sleep(3)
def sud():
while True:
print(0)
time.sleep(3)
if __name__ == '__main__':
p1 = multiprocessing.Process(name='p1', target=add)
p = multiprocessing.Process(name='p', target=sud)
p1.start()
p.start()
答案 1 :(得分:3)
您要查找的方法是run
,而不是start
。 run
启动流程并调用run
以在新流程中执行工作;如果您致电{{1}},则在调用流程中运行工作而不是新流程。