2
**僞代碼!C fork()和wait()調用如何工作?
fork();
printf(--print process ID);
fork();
printf(--print process ID);
fork();
printf(--print process ID);
這......我假設今天有8個過程的結果(糾正我,如果我錯了)。
現在,如果等待電話被添加到此,會發生什麼?
fork();
wait(..);
printf(--print process ID);
fork();
wait(..);
printf(--print process ID);
fork();
wait(..);
printf(--print process ID);
我想,無論1)進程數將是相同的; 2)printf()
打印也長得一模一樣?
如果沒有等待,第一個版本會出現相同的打印輸出嗎? –
@JimAvery:你不能確定。這取決於如何在流程中完成調度。父母和孩子執行的順序不能在第一個中確定,因此不能確定「printf」語句的順序。但是,在第二種情況下,確保父母將等待'wait()'調用孩子完成。 –