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

Python多线程并发执行两脚本及Windows服务器线程资源分配咨询

问题1:如何实现两个脚本的并发执行

如果是运行两个独立的脚本文件,直接通过命令行分别启动即可,操作系统会自动调度它们并发运行。

如果要在同一个Python进程内整合两个脚本的逻辑并实现并发,分两种场景处理:

  • CPU密集型任务:用ProcessPoolExecutor(多进程,避开GIL限制),将两个脚本的入口函数作为任务提交
  • IO密集型任务:用ThreadPoolExecutor(多线程)

示例代码(假设两个脚本的入口函数分别为script1_main和script2_main):

from concurrent.futures import ProcessPoolExecutor

def script1_main():
    # 第一个脚本的业务逻辑
    pass

def script2_main():
    # 第二个脚本的业务逻辑
    pass

if __name__ == '__main__':
    with ProcessPoolExecutor(max_workers=2) as executor:
        executor.submit(script1_main)
        executor.submit(script2_main)
问题2:能否利用剩余CPU资源运行第二个脚本

首先纠正:你提供的第一个脚本使用的是ProcessPoolExecutor,这是多进程而非多线程。

你的服务器有64个逻辑CPU线程,第一个脚本占用了32个进程,只要服务器CPU、内存等资源尚有剩余,完全可以启动第二个脚本,并将其max_workers设为32。操作系统会自动把第二个脚本的进程调度到空闲的CPU线程上,不会直接干扰第一个脚本的运行。

注意事项:

  • 第二个脚本同样要在if __name__ == '__main__':代码块内执行,避免Windows多进程启动的异常
  • 若第一个脚本是CPU密集型且已将32个CPU线程跑满,第二个脚本的运行速度会受影响,但不会中断第一个脚本的进程
  • 若你实际需求是多线程而非多进程,可将ProcessPoolExecutor替换为ThreadPoolExecutor,但CPU密集型任务用多线程无法充分利用多核资源,建议优先用多进程

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 19:52:11