int main () {
fork ();
fork ();
fork ();
pf (" hi\n");
}
“hi”会打印多少次? fork() 的执行顺序是什么? 操作系统:linux 编译器:gcc
最佳答案
问题 1:“hi”会打印多少次?
Due to first Fork
|
-------------------------
| |
Due to second fork Due to second fork
| |
---------------------- ----------------------------
| | | |
Due to 3rd fork Due to 3rd fork Due to 3rd fork Due to 3rd fork
| | | |
------------------ --------------- ---------- ------------
| | | | | | | |
process-1 process-2 process-3 process-4 pr-5 pr-6 process-7 process-8
所以
如果所有 fork
进展顺利,则总共创建 8 个进程,因此输出中将有 8 个或更少的 hi
问题2:fork()的执行顺序是什么?操作系统:linux 编译器:gcc
无法保证哪个进程将首先被安排,哪个进程将被安排在第二个。 这一切都取决于调度程序。
关于c - fork() 的执行顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27839824/