鍍金池/ 問答/C  C++  Linux/ c/c++查看資源回收情況

c/c++查看資源回收情況

一個進(jìn)程含有:

  1. open
  2. doing
  3. close
  4. destory

想問一下,如果在doing的時候,突然殺掉進(jìn)程,沒有調(diào)用destory來釋放資源。 進(jìn)程死掉了,所占用的資源是不是也就沒有了?

有沒有方法真正的從內(nèi)存占用,觀察一下是否真的被釋放了?

回答
編輯回答
涼薄

內(nèi)存這個應(yīng)該不用觀察吧.
每個進(jìn)程的內(nèi)存空間都是獨(dú)立的, 進(jìn)程掛了, 操作系統(tǒng)給她分配的內(nèi)存都會回收掉.

至于其他需要釋放的資源怎么處理, 這里要看你說的資源都是啥.
內(nèi)存/文件/鎖/數(shù)據(jù)庫鏈接/共享消息等.
如果是進(jìn)程內(nèi)資源, 那操作系統(tǒng)負(fù)責(zé)回收, 如果是跨進(jìn)程的資源,比如和另外個進(jìn)程共用一把鎖, 這個時候進(jìn)程A掛了,進(jìn)程B就拿不到鎖了, 如果進(jìn)程B也沒有鎖的超時機(jī)制,那就有問題了.

更進(jìn)一步, 如果你把"資源"限定在為一個一組對稱的操作的話, 也不會釋放. 比如進(jìn)程啟動初始化了一堆文件, destroy的時候應(yīng)該全部刪除. 這個活兒操作系統(tǒng)不會幫你干,進(jìn)程掛了的時候也沒有釋放.

2017年6月6日 04:30