多任务编程 -- 基于fork的多进程编程

fork使用

语法:

  1. pid = os.fork()
  2. 功能:创建新的进程
  3. 返回值:整数
    1. 负数:代表创建进程失败;
    2. 0与正整数:代表创建成功
      1. 正整数:在原有进程中,返回新进程的PID
      2. 0:在新进程中,返回0

代码示例:

import os

pid = os.fork()

if pid < 0:
    print("Create process failed")
elif pid == 0:
    print("The new process")
else:
    print("The old process")

print("Fork test over")

代码详解:

  1. 图解:

注意:

  • 子进程会复制父进程全部内存空间,从fork下一句开始执行;
  • 父子进程各自独立运行,运行顺序不一定;
  • 利用父子进程fork返回值的区别配合if结构,让父子进程执行不同的内容,几乎是固定搭配
  • 父子进程有各自特有特征,比如:PID、PCB命令集等;
  • 父进程fork之前,开辟的内存空间,子进程同样拥有父子进程对各自内存空间的操作不会相互影响

原文地址:https://www.cnblogs.com/gengyufei/p/12904349.html