Dav*_*nan 18
是的,系统可以回收进程ID.一旦关闭过程的最后一个句柄,它们就可用于此.
Raymond Chen在这里讨论了这个问题:进程ID什么时候可以重用?
进程ID是与进程对象关联的值,只要进程对象仍然存在,其进程ID也是如此.只要进程仍在运行(进程隐式保留对自身的引用)或者只有某人仍然拥有进程对象的句柄,进程对象仍然存在.
如果你考虑一下,这是有道理的,因为只要还有一个进程的句柄,有人可以调用WaitForSingleObject来等待进程退出,或者他们可以调用GetExitCodeProcess来检索退出代码,并退出代码必须存储在某处以便以后检索.
当所有句柄都关闭时,内核知道没有人会询问该进程是否仍在运行或退出代码是什么(因为你需要一个句柄来询问这些问题).此时可以销毁进程对象,从而破坏进程ID.
显然,如果该过程终止,则其PID可用于重用.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms683215%28v=vs.85%29.aspx
备注
在进程终止之前,其进程标识符在系统上唯一标识它.有关访问权限的更多信息,请参阅进程安全性和访问权限.
归档时间: |
|
查看次数: |
7690 次 |
最近记录: |