我有一个内存堆管理器,它根据系统上的处理器数量将堆分成不同的段.内存只能分配给当前运行的线程处理器的分区.这将有助于不同的处理器继续运行,即使两个不同的处理器想要同时分配内存,至少我相信.
我找到了GetCurrentProcessorNumber()Windows 的功能,但这仅适用于Windows Vista及更高版本.有没有一种适用于Windows XP的方法?
另外,这可以通过POSIX系统上的pthread来完成吗?
在Windows C++中,createThread()如果一个线程正在执行CPU密集型操作,则会导致某些线程速度变慢.会createProcess()缓解这个吗?如果是这样,是否createProcess()意味着代码必须驻留在第二个可执行文件中,或者这些都可以在同一个可执行文件中进行?