fork 之后的进程是否同时运行?

时间:2021-02-07 11:32:13

标签: c multithreading fork

好吧,我的问题是我在标题中写了什么,如果没有,有没有办法同时运行它们?我刚刚开始这个话题,这个话题突然出现在我的脑海中,我在任何地方都找不到

1 个答案:

答案 0 :(得分:-1)

fork 之后,你有两个进程。就像在系统上启动两个应用程序一样。那么您系统上的两个应用程序是否同时运行?不管答案是什么,为什么你认为分叉后情况会有所不同?实际上,当您在系统上启动应用程序时,它是通过分叉启动的。一些应用程序启动器会分叉(外壳、桌面 UI、文件管理器等),然后在分叉的进程中加载​​新程序,用启动应用程序的代码替换自己,这就是应用程序实际上是如何启动的。< /p>

非常简单的答案: 如果你的 CPU 有一个以上的核心,那么两个进程真的可以并行运行。如果不是,并且是多任务系统,系统会通过在所有正在运行的进程之间快速切换来模拟并行执行,因此每个进程获得一点 CPU 时间,然后下一个进程获得一点 CPU 时间,依此类推。这会产生并行执行的印象。

为了简单起见,这个答案忽略了常见操作系统的线程或其他细节。

相关问题