c/c++查看资源回收情况

一个进程含有:

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

想问一下,如果在doing的时候,突然杀掉进程,没有调用destory来释放资源。 进程死掉了,所占用的资源是不是也就没有了?

有没有方法真正的从内存占用,观察一下是否真的被释放了?

阅读 2.3k
1 个回答

内存这个应该不用观察吧.
每个进程的内存空间都是独立的, 进程挂了, 操作系统给她分配的内存都会回收掉.

至于其他需要释放的资源怎么处理, 这里要看你说的资源都是啥.
内存/文件/锁/数据库链接/共享消息等.
如果是进程内资源, 那操作系统负责回收, 如果是跨进程的资源,比如和另外个进程共用一把锁, 这个时候进程A挂了,进程B就拿不到锁了, 如果进程B也没有锁的超时机制,那就有问题了.

更进一步, 如果你把"资源"限定在为一个一组对称的操作的话, 也不会释放. 比如进程启动初始化了一堆文件, destroy的时候应该全部删除. 这个活儿操作系统不会帮你干,进程挂了的时候也没有释放.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题