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 に答える