做效果图有哪些网站,ppt模板网站排行榜,怎样建设自己的视频网站,wordpress排除分类目录文章如果您研究下任务管理器中的的进程 ID (PID)#xff0c;则你会发现这样一个规律#xff1a;它们都是 4 的倍数。
基于 Windows NT 内核的操作系统上#xff0c;不止是进程 ID#xff0c;实际上#xff0c;线程 ID (TID) 也遵守这样的规律#xff1a;也即它们都是 4 的倍…如果您研究下任务管理器中的的进程 ID (PID)则你会发现这样一个规律它们都是 4 的倍数。
基于 Windows NT 内核的操作系统上不止是进程 ID实际上线程 ID (TID) 也遵守这样的规律也即它们都是 4 的倍数。这是一个巧合吗
是的这只是一个巧合。并且在您的开发过程中请勿依赖这个规律因为它并非公开的编程接口。
举个例子在 Windows 95 上进程和线程 ID 就不总是 4 的倍数。作为对比的是内核句柄的值始终是 4 的倍数并且这已经编制进了公开的开发文档所以在可预见的未来你始终可以依赖这种设计原则。
进程和线程 ID 是 4 的倍数这是代码重用的副作用。
分配内核句柄的相同代码也用于分配进程和线程 ID。由于内核句柄是 4 的倍数因此进程和线程 ID 也是如此。
这是一个实现细节因此不要编写依赖于它的代码。今天的这篇文章我只是想要满足你的一丝好奇心如果有的话。
总结
越底层的代码就越难改变。16年过去了即使是在最新的 Windows 11 操作系统上进程 ID 也遵循着上述 4 的倍数的规律。 所以我们应该将精力专注于那些很难改变的知识上面这样在技术日新月异的时代您不会疲于奔命。
最后
Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一里面有很多关于Windows的小知识对于广大Windows平台开发者来说确实十分有帮助。 本文来自《Why are process and thread IDs multiples of four?》
最近我写了个东西
正如你们所知道的拓扑梅尔智慧办公平台(TopomelBox)是一款绿色软件主要面向经常使用电脑的朋友。它提供了各种提升办公效率的小功能同时操作上尽可能地简单方便。 我想你值得拥有。