<code id='jp33b'><strong id='jp33b'></strong></code>
      <dl id='jp33b'></dl>
    1. <tr id='jp33b'><strong id='jp33b'></strong><small id='jp33b'></small><button id='jp33b'></button><li id='jp33b'><noscript id='jp33b'><big id='jp33b'></big><dt id='jp33b'></dt></noscript></li></tr><ol id='jp33b'><table id='jp33b'><blockquote id='jp33b'><tbody id='jp33b'></tbody></blockquote></table></ol><u id='jp33b'></u><kbd id='jp33b'><kbd id='jp33b'></kbd></kbd>
    2. <i id='jp33b'></i>

        1. <span id='jp33b'></span>

          <fieldset id='jp33b'></fieldset><i id='jp33b'><div id='jp33b'><ins id='jp33b'></ins></div></i>

        2. <acronym id='jp33b'><em id='jp33b'></em><td id='jp33b'><div id='jp33b'></div></td></acronym><address id='jp33b'><big id='jp33b'><big id='jp33b'></big><legend id='jp33b'></legend></big></address>
          <ins id='jp33b'></ins>

          Linux进程的阻塞与非阻塞

          • 时间:
          • 浏览:2
          • 来源:124软件资讯网

            首先建立一个子历程  ,接着让其等候5秒  ,接下来对父历程应用WAITPID函数等候子历程的退出  ,父历程每隔1秒判断一次 。

              源码来自华清远见:

              #include

              #include

              #include

              #include

              #include

              int main()

              {

              pid_t pc, pr;

              //建立子历程

              pc = fork();

              if(pc < 0)

              {

              printf("error fork!\n");

              }

              else if(pc == 0)

              {

              sleep(5);

              exit(0);

              }

              else

              {

              do{//循环测试是否子历程退出

              pr = waitpid(pc, NULL, WNOHANG);//非壅闭

              //pr =waitpid(pc, NULL, 0);//壅闭

              if(pr == 0)

              {

              printf("the child process has not exited!\n");

              sleep(1);

              }

              }while(pr == 0);

              if(pr == pc)

              {

              printf("get child exit code: %d\n", pr);

              }

              else

              {

              printf("some error occured.\n");

              }

              }

              }

              注:

              从以上实验可以看出两个观点的区别:

              壅闭操作是指在没有执行装备操作时  ,若是没有获得资源 ,则历程挂起  ,直到知足可操作的条件再举行操作  。非壅闭操作的历程在不能举行装备操作时  ,并不挂起