在python中,当每个脚本中包含多个线程时,从一个主脚本同时运行两个脚本
问题描述
我想从master script
同时运行两个或多个Python脚本。这些脚本中的每一个都已经有并行运行的线程。例如,我运行
script1.py
if __name__ == '__main__':
pid_vav = PID_VAV('B2')
t1 = threading.Thread(target=pid_vav.Controls)
t1.daemon = False
t1.start()
t2 = threading.Thread(target=pid_vav.mqttConnection)
t2.daemon = False
t2.start()
script2.py
if __name__ == '__main__':
pid_vav = PID_VAV('B4')
t1 = threading.Thread(target=pid_vav.Controls)
t1.daemon = False
t1.start()
t2 = threading.Thread(target=pid_vav.mqttConnection)
t2.daemon = False
t2.start()
我正在分别运行script1.py
和script2.py
。唯一不同的是我传递给类的参数。是否有可能有一个主脚本,以便如果我只运行它,这两个脚本都可以运行?
谢谢
解决方案
假定您希望在运行主脚本时同时显示两个脚本的输出。
您可以使用subprocess
模块调用python文件,也可以使用threading
模块启动单独的线程
from threading import Thread
import subprocess
t1 = Thread(target=subprocess.run, args=(["python", "script1.py"],))
t2 = Thread(target=subprocess.run, args=(["python", "script2.py"],))
t1.start()
t2.start()
t1.join()
t2.join()
相关文章