c - fork 和线程有什么区别?

标签 c process multithreading fork

谁能解释一下 fork 和 thread 的区别?

最佳答案

fork 给你一个全新的进程,它是当前进程的副本,具有相同的代码段。随着内存镜像的变化(通常这是由于两个进程的不同行为),您会分离内存镜像(写入时复制),但可执行代码保持不变。任务不共享内存,除非它们使用一些 Inter Process Communication (IPC)原始。

一个进程可以有多个线程,每个线程在进程的相同上下文中并行执行。内存和其他资源在线程之间共享,因此必须通过一些原语和同步对象(如 mutexescondition variablessemaphores)访问共享数据,从而避免数据损坏。

关于c - fork 和线程有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2483041/

相关文章:

c - && 和 || 的顺序是在 C 中评估?

java - 如何在线程中使用定时器

multithreading - 在 Go 中的多线程中按 block 下载文件

gradle - gradle processResources:文件路径转换

Java ScheduledExecutorService - 需要有关实时性能问题的建议

c - 字符串拆分函数中的段错误

c - 为什么使用不同的指针类型?

c++ - 指向二维数组的指针。为什么这个例子有效?

c - 在 Linux 上的 C 中,我将如何使用 2 个程序,后者使用 stdout 将文本数据发送到第一个显示的程序?

linux - Linux 中进程的所有权(给定 PID)