浅析fork()和底层实现(3)

  在函数栈上面,子进程运行结束了,main的函数栈被子进程释放了,然后父进程在使用的时候,就访问不到了,一旦vfork出子进程,退出的时候需要使用exit来结束.

vfork和fork之间的区别:

1.fork父子进程交替运行,vfork保证子进程先运行,父进程阻塞,直到子进程结束(或子进程调用了exec或exit).

2.fork实现了写时拷贝. 而vfork直接让父子进程共用公用资源,避免多开辟空间拷贝,

3,vfork必须使用exit或者excl退出.

4.就算是fork使用了写时拷贝,也没有vfork性能高.

5.每个系统上的vfork都有问题,推荐不要使用.

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/9fe16721398026d0ff3ba7ce6aa62d24.html