一个进程含有:
- open
- doing
- close
- destory
想问一下,如果在doing的时候,突然杀掉进程,没有调用destory来释放资源。 进程死掉了,所占用的资源是不是也就没有了?
有没有方法真正的从内存占用,观察一下是否真的被释放了?
一个进程含有:
想问一下,如果在doing的时候,突然杀掉进程,没有调用destory来释放资源。 进程死掉了,所占用的资源是不是也就没有了?
有没有方法真正的从内存占用,观察一下是否真的被释放了?
6 回答6.9k 阅读✓ 已解决
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
内存这个应该不用观察吧.
每个进程的内存空间都是独立的, 进程挂了, 操作系统给她分配的内存都会回收掉.
至于其他需要释放的资源怎么处理, 这里要看你说的资源都是啥.
内存/文件/锁/数据库链接/共享消息等.
如果是进程内资源, 那操作系统负责回收, 如果是跨进程的资源,比如和另外个进程共用一把锁, 这个时候进程A挂了,进程B就拿不到锁了, 如果进程B也没有锁的超时机制,那就有问题了.
更进一步, 如果你把"资源"限定在为一个一组对称的操作的话, 也不会释放. 比如进程启动初始化了一堆文件,
destroy
的时候应该全部删除. 这个活儿操作系统不会帮你干,进程挂了的时候也没有释放.