约 1073 字

约 5 分钟

#Python 创建进程

在现代计算机系统中,可以同时运行多个程序实例,例如用户可以一边使用 Word 工作,一边使用播放器听音乐。

在运行的程序实例被称作 进程(Process),它是操作系统分配资源的基本单位。每个进程都有自己独立的内存空间和系统资源。

在 Python 中,使用 multiprocessing 模块里的 Process 类创建进程:

p = Process(target=入口函数, args=参数列表) 

例如:

from multiprocessing import Process
import os
import time

# 作为进程入口函数
def worker(name):
    for _ in range(3):
        print(f'{os.getpid()}: My name is {name}')
        time.sleep(1)                               # 进程阻塞 1 秒


if __name__ == '__main__':
    p1 = Process(target=worker, args=('worker1',))  # 创建进程
    p2 = Process(target=worker, args=('worker2',)) 
    p1.start()                                      # 启动进程
    p2.start()
    p1.join()                                       # 等待进程结束
    p2.join()

运行结果:

45352: My name is worker1
94204: My name is worker2
45352: My name is worker1
94204: My name is worker2
45352: My name is worker1
94204: My name is worker2

注意:

  • 主进程必须判断 __name__ == '__main__',因为 Python 通过重新导入模块的方式创建子进程,如果不做此判断,会导致无限递归创建进程。
  • 进程的调度顺序是不确定的,因此输出的顺序也不确定。

更新: 2025/5/21

作者: PlanC

创建: 2025/5/11