0

我正在运行一些 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

我不断收到“失效”的进程。这意味着什么?为什么这会发生在我身上?

4

1 回答 1

0

原来是 t.wait() 导致了僵尸进程。根据作业完成的顺序,会有一些处于僵尸状态,直到 t.wait() 处理它们。这不是一个真正的问题,这是我想确定的。

于 2013-09-13T13:35:49.747 回答