我有一个在类中运行子进程的父进程。子进程需要更长的时间才能完成。我想确保当父进程终止时,子进程不会终止。我该怎么做?你知道吗
下面是我的代码的一个非常简化的版本:
# myClass.py
from multiprocess import Process
class myClass(self):
def __init__(self):
print ('setup the object')
def parentProcess(self, idx)
p = Process(target=childFunc)
p.start()
time.sleep(3)
print ('parent is done with ' + str(idx))
def childProcess(self):
print ('do some childish stuff')
time.sleep(8)
我就是这样运行父进程的
# main.py
from multiprocessing import Process
myClass import myClass
myC = myClass()
for i in range(10):
p = Process(target=myC.parentProcess, args=i)
p.start()
p.join()
在所有进程完成之前,程序不会终止。试试这个:
但是,要控制流程的执行:
使用
child.join()
等待子进程结束。您应该使用两个循环,一个用于启动进程,另一个用于连接进程
试试这个:
或者更好的方法是,子类
Process
并实现run()
:相关问题 更多 >
编程相关推荐