我需要同时运行2个进程。在第一个文件中我有一个for循环,它调用函数并行运行2个方法,但它只做一个循环
在第一个文件中:
for i in range(5):
class1.runInParallel(class1.acquireF(a, b), class1.readS(c,d))
在class1中:
from multiprocessing import Process
class Class1:
def acquireF(self,a,b):
#do something
def readS(self,c,d):
self.tSleep = 3
#do something
def runInParallel(self, acquireF, readS):
p1 = Process(target = acquireF)
p1.start()
p2 = Process(target = readS)
p2.start()
p1.join()
p2.join()
我读到它应该是关于主要过程不等待其孩子完成的事实。是这样吗?我怎么解决呢?谢谢
这可能是一个很好的解决方案吗? 在第一个文件中:
Thread(target = class1.acquireF(a,b)).start()
Thread(target = class1.readS(c,d)).start()
只是在class1
中的方法acquireF和readS答案 0 :(得分:0)
Process.join()等待进程完成,因为我们不知道你在进程中放了什么,我们无法提供帮助。
我的猜测是,由于p1.join(),你在acquireF中被阻止了。