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

如何实现按下P键时同时运行同一函数的多进程实例

实现按P键启动独立进程运行函数

问题分析

原代码存在两个核心问题:

  1. 创建Process时直接执行asyncio.run(function()),导致函数先在主进程内执行完毕,根本没起到多进程的作用。
  2. 每次循环都调用join(),强制主进程等待子进程结束,无法实现多进程并行运行。

修改后的代码

import keyboard
import asyncio
from multiprocessing import Process

async def function():
    print(f'函数启动,进程ID: {os.getpid()}')
    await asyncio.sleep(1)
    print(f'函数结束,进程ID: {os.getpid()}')

def run_function():
    asyncio.run(function())

if __name__ == '__main__':
    import os
    while True:
        if keyboard.read_key() == "p":
            print("检测到P键,启动新进程")
            # 创建并启动子进程,不调用join(),让主进程继续监听按键
            p = Process(target=run_function)
            p.start()

关键修改说明

  • 新增run_function包装函数,解决异步函数直接作为Process目标的语法问题。
  • 创建进程时传递函数引用而非直接执行函数,确保子进程独立运行目标逻辑。
  • 移除join()调用,主进程无需等待子进程结束,每次按P键都会启动一个全新的独立进程,多个进程可同时运行。
  • 添加if __name__ == '__main__':保护,避免多进程模式下的重复初始化异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 21:15:34