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

Python中如何同时执行两个任务?multiprocessing使用求解

代码现存的核心问题

  • 构造函数参数非法:Python语法不支持在同一次函数调用中重复传入同一个关键字参数,原代码连续为multiprocessing.Process传入两次target、两次args,会直接触发语法错误,程序无法正常运行。
  • target参数传值逻辑错误:Process的target参数要求传入可调用对象本身,而非可调用对象的执行结果。原代码中target=print('hi')会直接在主进程执行一次打印逻辑,再把调用print返回的None值传给Process,子进程并不会执行预设的打印任务。
  • 并行逻辑实现偏差:单个Process实例仅能绑定一个执行入口,要并行执行两个独立任务,需要分别创建两个Process实例,无法将两个任务的参数混杂在同一个构造调用中传入。

可行实现方案

import multiprocessing

# 定义两个独立的并行任务
def print_hi():
    print('hi')

def print_hello():
    print('hello')

if __name__ == '__main__':
    # 为每个任务单独创建进程实例
    process_hi = multiprocessing.Process(target=print_hi)
    process_hello = multiprocessing.Process(target=print_hello)

    # 启动进程
    process_hi.start()
    process_hello.start()

    # 阻塞等待进程执行完成,回收系统资源
    process_hi.join()
    process_hello.join()

带参数传递的扩展写法

如果任务需要传入外部参数,需要为对应进程单独配置args参数,且参数必须以元组形式传入,示例如下:

def print_custom_content(content):
    print(content)

if __name__ == '__main__':
    test_i = "自定义传入内容"
    # 两个进程分别绑定独立的参数
    p1 = multiprocessing.Process(target=print_custom_content, args=(test_i,))
    p2 = multiprocessing.Process(target=print_custom_content, args=("hello",))
    
    p1.start()
    p2.start()
    p1.join()
    p2.join()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.23 04:54:03