当前位置:嗨网首页>书籍在线阅读

09-总结

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

24.6 总结

系统调用fork()通过复制一个与调用进程(父进程)几乎完全一致的拷贝来创建一个新进程(子进程)。系统调用vfork()是一种更为高效的fork()版本,不过因为其语义独特——vfork()产生的子进程将使用父进程内存,直至其调用 exec()或退出;于此同时,将会挂起(suspended)父进程,所以应尽量避免使用。

调用fork()之后,不应对父、子进程获得调度以使用CPU的先后顺序有所依赖。对执行顺序做出假设的程序易于产生所谓“竞争条件”的错误。由于此类错误的产生依赖于诸如系统负载之类的外部因素,故而其发现和调试将非常困难。