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

如何用Thread多线程并行带参调用Python脚本script01.py?

实现并行启动带不同参数的Python脚本

你可以通过线程(threading)结合subprocess模块来实现,每个线程负责启动一个独立的script01.py进程并传递对应参数。下面是具体实现方案:

方法一:使用threading + subprocess

这种方式适合轻量并行启动外部进程,逻辑简单直接:

import threading
import subprocess

def run_script(args):
    # 构造完整启动命令:python script01.py + 目标参数组
    cmd = ['python', 'script01.py'] + args
    # 执行命令,check=True会在脚本执行出错时抛出异常便于排查
    subprocess.run(cmd, check=True)

# 定义多组待执行的参数,每组对应一个脚本实例的4个输入参数
param_groups = [
    ['A', 'B', 'C', 'D'],
    ['E', 'F', 'G', 'H'],
    ['I', 'J', 'K', 'L']
]

# 创建并启动线程
threads = []
for params in param_groups:
    thread = threading.Thread(target=run_script, args=(params,))
    threads.append(thread)
    thread.start()

# 等待所有线程对应的脚本实例执行完成
for thread in threads:
    thread.join()

print("所有脚本实例执行完毕")

代码说明

  • run_script函数负责接收一组参数,拼接成合法的启动命令后调用subprocess.run执行脚本。
  • param_groups是你需要并行执行的参数集合,可根据需求任意扩展组数。
  • 最后通过join()确保所有并行任务完成后,再执行后续逻辑。

方法二:使用multiprocessing(可选)

如果需要更彻底的进程隔离,也可以用multiprocessing模块实现,代码逻辑和threading几乎一致:

import multiprocessing
import subprocess

def run_script(args):
    cmd = ['python', 'script01.py'] + args
    subprocess.run(cmd, check=True)

param_groups = [
    ['A', 'B', 'C', 'D'],
    ['E', 'F', 'G', 'H'],
    ['I', 'J', 'K', 'L']
]

processes = []
for params in param_groups:
    p = multiprocessing.Process(target=run_script, args=(params,))
    processes.append(p)
    p.start()

for p in processes:
    p.join()

print("所有脚本实例执行完毕")

注意事项

  • 若脚本有大量输出,可在subprocess.run中添加stdout=subprocess.PIPE/stderr=subprocess.PIPE捕获输出,或重定向到文件(如stdout=open('thread_output.log', 'a'))。
  • 若需限制并发数量(避免一次性启动过多进程),可使用threading.Semaphore或multiprocessing.Pool来控制并发数。
  • 若脚本不在当前工作目录,需替换为script01.py的绝对路径,比如'C:/dev/scripts/script01.py'或'/home/user/scripts/script01.py'。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 00:04:58