Windows将每一个硬件线程识别为一个可调度的逻辑处理器。每一个逻辑处理器可以运行软件线程的代码。运行了多个软件线程的进程可以充分发挥硬件线程和物理内核的优势,并行地运行指令。图1-4展示了运行在物理内核上的硬件线程上的软件线程。Windows调度器可以决定将一个软件线程赋给另一个硬件线程,通过这种方式均衡每一个硬件线程的工作负载。由于通常都有很多其他软件线程在等待处理时间,因此,负载均衡机制能够合理组织有效的资源,让其他线程也有机会运行各自的指令。图1-5展示了Windows Task Manager正在显示8个硬件线程(逻辑内核和工作负载)。
基于任务的程序设计(6)
C#并行编程高级教程
(美)Gastón C.Hillar