使用 Python 的 multiprocessing
模块可以方便地实现多进程操作。以下是一个基本示例,展示了如何创建和管理多个进程。
import multiprocessing
import os
import time
# 定义一个函数,表示每个进程要执行的任务
def worker_function(name, delay):
print(f"进程 {name} (PID: {os.getpid()}) 开始工作")
time.sleep(delay)
print(f"进程 {name} 完成工作")
if __name__ == "__main__":
# 创建多个进程
processes = []
for i in range(5):
process = multiprocessing.Process(target=worker_function, args=(f"Worker-{i}", i+1))
processes.append(process)
process.start() # 启动进程
# 等待所有进程完成
for process in processes:
process.join()
print("所有进程已完成工作")
import multiprocessing
: 导入 multiprocessing
模块,该模块提供了多进程管理的功能。def worker_function(name, delay):
: 定义了一个函数 worker_function
,它接受两个参数:name
(进程名)和 delay
(延迟时间)。该函数模拟了一个简单的任务,通过 time.sleep(delay)
让进程暂停一段时间。if __name__ == "__main__":
: 这是一个惯用语句,确保当该脚本作为主程序运行时才会执行以下代码,避免在 Windows 上创建新进程时无限递归。processes.append(process)
: 创建了一个进程对象 process
,目标函数是 worker_function
,并传递参数。将这个进程添加到 processes
列表中。process.start()
: 启动进程。start()
方法会调用 Process
对象的 run()
方法,执行目标函数 worker_function
。process.join()
: 主进程会等待所有的子进程执行完成后再继续运行。程序运行后,你将看到类似以下的输出,表示多个进程的执行情况:
进程 Worker-0 (PID: 12345) 开始工作
进程 Worker-1 (PID: 12346) 开始工作
进程 Worker-2 (PID: 12347) 开始工作
进程 Worker-3 (PID: 12348) 开始工作
进程 Worker-4 (PID: 12349) 开始工作
进程 Worker-0 完成工作
进程 Worker-1 完成工作
进程 Worker-2 完成工作
进程 Worker-3 完成工作
进程 Worker-4 完成工作
所有进程已完成工作
每个进程在独立的子进程中执行,可以看到不同的进程ID(PID)。join()
确保主进程在所有子进程结束后才退出。