Windows平台下过程ID (PID)的范围是多少
Windows平台下进程ID (PID)的范围是多少本帖最后由 feng32tc 于 2013-08-09 23:03:06 编辑我的一个程序对
Windows平台下进程ID (PID)的范围是多少
本帖最后由 feng32tc 于 2013-08-09 23:03:06 编辑 我的一个程序对系统中活跃的进程进行追踪记录,记录数据有两项:进程名称和完整路径
之前我假定PID总是在0到65536之间,所以使用了如下的结构作为映射表(之所以除以4是因为PID似乎总是4的整数倍):
TCHAR *_nameTable[65536 / 4];
TCHAR *_pathTable[65536 / 4];
活跃的进程对应的nameTable和pathTable记录了相应的名称和路径,而对于不存在的进程,TCHAR指针指向一个空字符串。由于这个查询操作相当频繁,这里使用了如上的直接散列方式,而没有采用红黑树(std::map)之类的方案。
在对程序进行维护时,我发现有时系统中的PID会变得相当大,超过了65536的范围。但是由于效率的问题,以上的直接散列依然是首选方式。所以问题来了:请问一个进程的PID到底取决于什么,它的范围是什么呢? Windows?PID Windows PID
[解决办法]每个进程都有个pid来标示它的唯一性的!
至于范围感觉应该和操作系统有关系吧!
因为开一个进程就分配一个进行pid,当你进程停止后,系统又会回收你的pid重新利用!
这样理解的话应该取决你的操作系统的承载能力啦!
我是这么理解的!