多个处理器

【勇芳软件工作室】汉化HomePreviousNext

Windows NT使用对称多处理(SMP)模型来调度多个处理器上的线程。使用此模型,任何线程都可以分配给任何处理器。因此,在具有多个处理器的计算机上调度线程类似于具有单个处理器的计算机上的调度线程。但是,调度程序有一个处理器池,因此它可以调度线程并发运行。调度仍然由线程优先级决定。然而,在多处理器计算机上,您还可以通过设置线程亲和度和线程理想处理器来影响调度,如这里所述。

线程亲和力

【线程亲和度】强制线程在特定的处理器子集上运行。使用SetProcessAffinityMask函数为进程的所有线程指定线程关联。要为单个线程设置线程关联,请使用SetThreadAffinityMask功能。线程关联性必须是进程关联的一个子集。您可以通过调用GetProcessAffinityMask函数来获取当前的进程关联。

通常应避免设置线程关联,因为它可能会干扰调度程序有效地跨处理器调度线程的能力。这可以降低并行处理产生的性能提升。适当使用线程亲和性是测试每个处理器。

线程理想处理器

当您指定【线程理想的处理器】时,调度程序在可能的情况下在指定的处理器上运行线程。使用SetThreadIdealProcessor函数为线程指定首选处理器。这不能保证理想的处理器将被选择,而是为调度程序提供一个有用的提示。