1. 程式人生 > >linux的殭屍程序和孤兒程序的區別

linux的殭屍程序和孤兒程序的區別

殭屍程序

父程序還未呼叫wait或waitPID獲取子程序的程序號和狀態描述符前,子程序先於父程序退出exitexit(),子程序變成殭屍程序。此時父程序保留著程序號和狀態描述符,減少能建立的新程序,導致資源浪費

孤兒程序

父程序先於子程序退出, 子程序會變成孤兒程序,孤兒程序最後會被民政局init程序(程序號為1)收養接管,init程序對它們完成狀態收集工作,

父程序先退出的情況

  • 採用阻塞方式父程序呼叫wait等待子程序的結束,因為一個wait函式只調用一次,如果子程序個數比wait個數多,多出的子程序會成為孤兒程序
  • 採用不阻塞方式父程序呼叫waitpid不會等待,沒執行完的子程序將會成為孤兒程序