目录
进程 = 内核数据结构+代码和数据
fork 创建子进程
编辑
创建多进程
理解子进程的创建(总结)
进程 = 内核数据结构+代码和数据
一个进程只有一个唯一父进程,但可以拥有多个子进程,因此进程是树形结构.
fork 创建子进程
父子进程代码共享,数据各自私有的原因
因为数据私有可以通过此特性来控制不同子程序(利用了fork的返回值)
下面是fork函数的返回值说明
如果创建成功 给父进程返回子进程的PID ,给子进程返回0
创建失败给父进程返回-1 ,没有子进程
fork函数之后会有两个分支(父与子) 执行fork之后的代码
可以通过fork给父子进程数据各自私有的特性( fork返回值的不同 ),对下面的代码进行分流
创建多进程
理解子进程的创建(总结)
- fork函数内部 return之前子进程已经被创建好了,return会分别被父子进程执行 ,由于父子进程的数据各自私有,因此会有两个返回值.
- fork之后,下面的代码由父进程和子进程分别执行
- 但是利用fork的不同返回值, 就可以控制fork下面的代码由谁来执行(分流)
- fork之后 ,父子进程哪个先运行 ,由OS的调度器来决定.