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

如何在Python中同时运行多个不同的方法?

如何并行执行多个无参数的Python方法

当然可以实现,用Python自带的multiprocessing或concurrent.futures模块就能搞定多个不同无参数方法的并行执行,下面给你两种实用方案:

方案一:用multiprocessing手动创建进程

直接为每个方法创建独立进程,手动管理启动和等待:

import sys
import time
import multiprocessing

import NO_1
import NO_2
import NO_3
import NO_4
import NO_5

if __name__ == '__main__':
    start = time.time()
    
    # 为每个方法创建进程实例
    processes = [
        multiprocessing.Process(target=NO_1.NO_1),
        multiprocessing.Process(target=NO_2.NO_2),
        multiprocessing.Process(target=NO_3.NO_3),
        multiprocessing.Process(target=NO_4.NO_4),
        multiprocessing.Process(target=NO_5.NO_5)
    ]
    
    # 启动所有进程
    for p in processes:
        p.start()
    
    # 等待所有子进程执行完毕,再继续主进程逻辑
    for p in processes:
        p.join()
    
    end = time.time() - start
    print(f"总执行耗时: {end:.2f}秒")

方案二:用concurrent.futures进程池(更简洁)

用进程池自动管理进程生命周期,代码更简洁:

import sys
import time
from concurrent.futures import ProcessPoolExecutor

import NO_1
import NO_2
import NO_3
import NO_4
import NO_5

if __name__ == '__main__':
    start = time.time()
    
    # 把要执行的方法整理成列表
    task_list = [NO_1.NO_1, NO_2.NO_2, NO_3.NO_3, NO_4.NO_4, NO_5.NO_5]
    
    # 进程池上下文管理器会自动处理进程创建和销毁
    with ProcessPoolExecutor() as executor:
        # 批量提交任务,lambda用来调用无参数方法
        executor.map(lambda func: func(), task_list)
    
    end = time.time() - start
    print(f"总执行耗时: {end:.2f}秒")

注意事项

  • 所有多进程代码必须放在if __name__ == '__main__':块内,这是Windows系统的强制要求,避免递归创建进程。
  • 如果你的方法是IO密集型(比如网络请求、文件读写),可以换成ThreadPoolExecutor(线程池),资源开销更小;如果是CPU密集型,用进程池才能绕过Python的GIL限制,真正实现并行。
  • 要是方法有返回值,executor.map会按任务顺序返回结果,也可以用executor.submit()配合result()单独获取每个任务的返回值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 11:27:17