進程等待--------程序流程_PN情結-ChinaUnix博客

wait.c(代碼):
#include
#include
#include
#include
void main()
{
pid_t pc,pr;
pc=fork();
if(pc==0)/*******如果是子進程***************/
{
printf("This is child process with pid of %d\n",getpid());
sleep(10);/******睡眠10秒鐘************/
}
if(pc>0) /**********如果是父進程************/
{
pr=wait(NULL);/*************等待******/
printf("I catched a child process with pid of %d\n",getpid());
}
}


執行fork命令之後,如果fork的返回值是0,就是運行子進程的if語句,緊接着打印This is child process with pid of。。。,然後進入睡眠10秒鐘,在這10秒鐘,子進程是進入休眠狀態,CPU 空閒,所以這10秒是父進程在使用CPU,由程序可以知道,父進程進入了if(pc>0)的if語句中,然後等待進入等待,等待10秒後,子進程醒過來,釋放CPU,然後父進程使用CPU打印:I catched a child .................兩條打印語句是先打印上面這條,再打印下面的那條。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章