程式的3種狀態

Juju_qi發表於2022-07-27

從程式設計師的角度來看,程式有3種狀態。

  1. 進行中

    程式正在執行,或者等待被執行。

  2. 掛起(也叫停止)

    臨時掛起, 比如執行了sleep(),wait()函式等。 直到收到SIGCONT訊號接著執行程式。

  3. 終止

    程式已經永遠結束,等待父程式回收或已經被回收。 常見的程式碼中執行exit函式,或者cli下ctrl+c。

注:有些童鞋可能覺得 “執行狀態下等待被執行”和“掛起”有什麼區別呢?

答:掛起狀態是收到一個訊號,比如SIGSTOP,SIGISTP等,變為掛起狀態。在這期間直到收到繼續執行程式的 SIGCONT訊號,否則不會被核心執行。它告訴核心大哥, 我還在等待 “SIGCONT訊號“的通知, 核心你還不能排程我。 而“進行狀態下的等待被執行”是 程式告訴核心大哥我已經準備好了, 你可以隨時排程我了。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章