多任务编程 -- 基于fork的多进程编程
fork使用
语法:
- pid = os.fork()
- 功能:创建新的进程
- 返回值:整数
- 负数:代表创建进程失败;
- 0与正整数:代表创建成功
- 正整数:在原有进程中,返回新进程的PID;
- 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")
代码详解:
- 图解:
注意:
- 子进程会复制父进程全部内存空间,从fork下一句开始执行;
- 父子进程各自独立运行,运行顺序不一定;
- 利用父子进程fork返回值的区别,配合if结构,让父子进程执行不同的内容,几乎是固定搭配;
- 父子进程有各自特有特征,比如:PID、PCB命令集等;
- 父进程fork之前,开辟的内存空间,子进程同样拥有,父子进程对各自内存空间的操作不会相互影响;