首頁 > 後端開發 > Python教學 > 如何使用非阻塞進程呼叫在 Python 中非同步運行從屬腳本?

如何使用非阻塞進程呼叫在 Python 中非同步運行從屬腳本?

DDD
發布: 2024-10-19 13:47:29
原創
714 人瀏覽過

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

非阻塞 subprocess.call

在這種情況下,您打算從父腳本 (main.py) 非同步呼叫從屬腳本 (slave.py) 。具體來說,您希望 Slave.py 在初始執行時從 main.py 接收參數後獨立於 main.py 運行。

要實現非阻塞行為,您應該使用 subprocess.Popen 而不是 subprocess.call 。主要差異在於 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中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板