我正在运行一些C ++代码(8个独立进程在Ubuntu上运行,有8个内核)。
我正在使用python启动C进程:
def runC():
numThreads = multiprocessing.cpu_count()
threads = []
for i in range(numThreads):
args = ("./cprogram", arg1,arg2,arg3)
popen = subprocess.Popen(args, stdout=subprocess.PIPE,stderr=subprocess.PIPE)
threads.append(popen)
for t in threads:
t.wait()
output = t.stdout.read()
err = t.stderr.read()
if len(output) > 0:
print "output: " + output
if len(err) > 0:
print "err: " + err
我一直在“解散”过程。那是什么意思?为什么会发生这种情况?
答案 0 :(得分:0)
原来是导致僵尸进程的t.wait()。根据作业完成的顺序,有一些处于僵尸状态,直到t.wait()到达它们。这不是一个真正的问题,这是我想要确定的。