Windows中进程A创建了另一个进程B那么进程A就是进程B的父进程,B就是A的子进程
在每一个进程的内存数据结构中,只保存了其父进程的Pid(Parent ProcessId)即使父進程被关闭了,这个存储父进程Pid的字段也不会更新因此很多情况下通过父进程Pid很可能找不到任何一个进程(即父进程已经关闭或者异常退出)。
当然这并不是什么大问题因为目前并没有什么东西需要依赖这个父进程Pid。
通过一个简单实验来说明进程树还有进程之间的关系我们需要用到ProcessExplorer这个工具(网上随便可以下载到)。
cmd再开一个子窗口:
为新的子窗口修改Title:
我们尝试以“结束进程树”的方式来结束Pid为852100的父进程:
结束后可以发现,三个cmd窗口都关闭掉了
可以看到,关闭后GrandChild这个窗口变成了一个独立的进程,相当于这个进程树被打断了這时我们再去对Parent窗口结束进程树的话,GrandChild窗口就不会随之结束了