除了执行外部程序之外,fork()的有用性

Usefulness of fork() besides executing foreign programs

本文关键字:fork 有用性 执行 外部 程序      更新时间:2023-10-16

我读到的关于fork()的教程、手册和其他资源通常只包含使用线程可以更好地解决的示例。他们只是交流,做一些非常基本的任务,然后再次交流以分享或显示结果。我有一种感觉,除非你的意图是启动一个外国程序(让父亲继续,孩子启动那个外国程序),否则线程总是比fork更容易处理、更灵活、更安全。

fork()优于仅使用线程时,还有其他应用领域吗?除了一种病毒。

您可以使用fork()作为一种简单的方法,在不停止原始应用程序的情况下从应用程序生成快照。

由于操作系统将进程的虚拟内存映射为写时拷贝,因此除了发生更改的数据(加上操作系统开销)外,您实际上不需要支付任何成本。

编辑:为了以后的观众,添加了评论中的答案。

一个典型的例子是web服务器(例如Apache)。如果进程崩溃,那么很容易干净地重新启动,而线程则不然。使用单独的进程可以限制单个进程崩溃造成的损害Jerry Coffin

fork()比各种线程机制早了至少十年。因此,如果您需要移植到V7 UNIX,fork()是一个更好的选择抢劫ᵩ

fork()可用于守护进程,同时保持监视器进程的活动状态。–标记B