我正在学习fork()的基础知识。我被要求工作的程序之一有一些要运行1000次的功能。然后再次,除了分叉过程,大概是因为它更快。
我的问题是为什么在分叉进程中运行简单函数(创建数组,链表和执行系统调用)会更快,因为fork不能简单地复制原始程序吗?
答案 0 :(得分:3)
父母通常没有理由分叉单个孩子来完成这类工作,但如果父母分叉多个孩子,那么这项工作可以分布在多个处理器或多个处理器上至少可以安排工作单元来最佳地使用一个处理器,分叉的孩子需要等待I / O或长时间运行的系统调用。
现在线程更常用于此类事情,因为线程使用的资源少于新进程 - 但它仍然是一个很好的学习练习。