ホームページ  >  記事  >  バックエンド開発  >  ノンブロッキングプロセス呼び出しを使用してPythonでスレーブスクリプトを非同期的に実行するにはどうすればよいですか?

ノンブロッキングプロセス呼び出しを使用してPythonでスレーブスクリプトを非同期的に実行するにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-19 13:47:29633ブラウズ

How to Run a Slave Script Asynchronously in Python using Non-Blocking Process Invocation?

ノンブロッキング subprocess.call

このシナリオでは、親スクリプト (main.py) からスレーブ スクリプト (slave.py) を非同期的に呼び出すことを目的としています。 。具体的には、最初の実行時に main.py から引数を受け取った後、slave.py を main.py とは独立して実行する必要があります。

ノンブロッキング動作を実現するには、subprocess.call の代わりに subprocess.Popen を使用する必要があります。 。主な違いは、subprocess.call はコマンドが完了するまで待機してから続行するのに対し、subprocess.Popen は待機しないことです。

これは subprocess.Popen を使用した例です。

import subprocess

# Pass the arguments from main.py to slave.py
arguments = ['python', 'slave.py'] + sys.argv[1:]

# Launch slave.py as a non-blocking process
process = subprocess.Popen(arguments)

さて、main .py は、slave.py が独立して実行されている間も実行を続けることができます。

追加の注意事項:

  • 次の場合は、引数を渡すためにリストを使用しないでください。ここではshell=Trueを使用しています。
  • あるいは、asyncioを利用してコルーチンベースの並列処理を行うこともできます。詳細については、元の回答で提供されている例を参照してください。

以上がノンブロッキングプロセス呼び出しを使用してPythonでスレーブスクリプトを非同期的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。