You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何确保两个Python脚本同步启动?优先通过第三方Python脚本实现的方案

实现两个Python脚本同步启动的简便方案

没问题!要让两个Python脚本完全同步启动,用一个第三方控制脚本是最直接的办法。下面给你两种实用的实现方式,都是纯Python代码,不需要额外工具,完全能满足性能测试的同步要求:

方法1:线程并行启动(简单高效)

利用Python的threading模块,把启动两个脚本的操作放到独立线程里,线程启动的延迟极低,基本能达到同步效果。

import subprocess
import threading

def run_script(script_path):
    # 启动指定脚本,check=True会在脚本执行出错时抛出异常
    subprocess.run(["python", script_path], check=True)

if __name__ == "__main__":
    # 替换成你的两个脚本路径(绝对/相对路径都可以)
    script_a = "./test_script_1.py"
    script_b = "./test_script_2.py"

    # 创建两个线程,分别绑定启动脚本的任务
    thread_a = threading.Thread(target=run_script, args=(script_a,))
    thread_b = threading.Thread(target=run_script, args=(script_b,))

    # 同时启动两个线程——这一步会让两个脚本几乎同步开始执行
    thread_a.start()
    thread_b.start()

    # 等待两个脚本都执行完毕再退出控制脚本
    thread_a.join()
    thread_b.join()

方法2:精确信号同步(适合严格要求的场景)

如果你的性能测试对启动时间的同步精度要求极高,可以用threading.Event做一个“启动信号”,让两个脚本在同一时刻触发执行:

import subprocess
import threading
import time

def run_script(script_path, start_signal):
    # 线程启动后先等待信号,直到收到指令才启动脚本
    start_signal.wait()
    subprocess.run(["python", script_path], check=True)

if __name__ == "__main__":
    script_a = "./test_script_1.py"
    script_b = "./test_script_2.py"

    # 创建一个事件对象,作为同步启动的信号
    start_event = threading.Event()

    # 创建线程并传入启动信号
    thread_a = threading.Thread(target=run_script, args=(script_a, start_event))
    thread_b = threading.Thread(target=run_script, args=(script_b, start_event))

    # 先启动线程(此时线程会停在wait()步骤,不会执行脚本)
    thread_a.start()
    thread_b.start()

    # 可以在这里做一些测试前的准备工作,比如打印日志、初始化资源
    print("正在准备同步启动脚本...")
    time.sleep(1)  # 给线程一点时间进入等待状态(可选)
    print("启动!")

    # 触发信号,两个线程会同时执行脚本启动操作
    start_event.set()

    # 等待脚本执行完成
    thread_a.join()
    thread_b.join()

注意事项

  • 如果你的系统里Python解释器是python3,记得把代码里的"python"改成"python3",避免找不到解释器的问题。
  • 脚本路径尽量用绝对路径,或者确保控制脚本和测试脚本在同一目录下,防止路径错误。
  • 如果测试脚本需要接收命令行参数,直接在subprocess.run的参数列表里追加即可,比如["python", script_a, "--batch-size", "100"]。

内容的提问来源于stack exchange,提问作者Muhammad Yasir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 13:27:28