5

Python スクリプト ファイルで同時に実行したい 3 つの .py ファイルがあります。最初にsubprocess.call()3 回 (.py ファイルごとに 1 回) 呼び出しましたが、コマンドが終了するまでブロックされることを思い出しました。ブロックしないと思うので試してみましたが、プロセスをチェックしていると、プロセスが1つしか実行subprocess.Popen(['screen', 'python_file'])されていませんでした。screen -lsPython スクリプトを使用して 3 つのプログラムを同時に実行するにはどうすればよいですか? multiprocessingまたはmultithreadingライブラリを使用する必要がありますか?

編集: 無限ループで実行されているため、他のプロセスは終了しないはずです。これはまさに、Python スクリプト ファイルに含まれていたものです。私が使用しているのはscreen、各 .py ファイルに標準出力が端末にログオンしており、それぞれのログに記録されている内容を確認できるようにしたいからです。


subprocess.Popen(['screen', './submitter.py'])
subprocess.Popen(['screen', './worker.py'])
subprocess.Popen(['screen', './tester.py'])

4

1 に答える 1

9

を使用したい場合はmultiprocessing、これを試すことができます:

import multiprocessing

def worker(file):
    # your subprocess code


if __name__ == '__main__':
    files = ["path/to/file1.py","path/to/file2.py","path/to/file3.py"]
    for i in files:
        p = multiprocessing.Process(target=worker, args=(i,))
        p.start()
于 2013-08-13T18:23:56.153 に答える