我有一個程序需要它暫停和恢復另一個程序。要做到這一點,我使用kill功能,可以通過代碼: -暫停進程時的基礎機制
kill(pid, SIGSTOP); // to pause
kill(pid, SIGCONT); // to resume
,或者在命令行與同類
kill -STOP <pid>
kill -CONT <pid>
我能追查這是怎麼回事使用this code線程,取自Mac OS X Internals。
如果程序暫停並立即恢復,則線程狀態可顯示爲不可中斷。大多數時候,他們報告爲WAITING,這並不奇怪,如果一個線程正在工作,它將顯示爲RUNNING。
我不明白的是,當我暫停程序並查看線程的狀態時,它們仍顯示爲WAITING。我本來期望他們的狀態是要麼已停止或 HALTED
有人能解釋爲什麼他們仍然顯示爲WAITING,他們何時會已停止或HALTED。另外,是否有另一種結構顯示程序的狀態,並且它的線程以這種方式被暫停?
謝謝你,你說的是對的國家,但不是缺乏一個結構來顯示該計劃的狀態。 – TheDarkKnight