可执行利用多个处理器

时间:2015-01-20 14:27:13

标签: .net multiprocessing cpu

我正在设计一个应用程序,它将包含一个“管理器”可执行文件和一个由前者启动和管理的“守护程序”可执行文件的1到n个实例。我想充分利用CPU核心的数量。

我的问题是:可以(并且应该)使用TPL控制此行为,即使每个守护程序可执行文件本身不使用多个线程?或者是MS Windows自动控制的东西,即Windows是否自动负载平衡多核之间启动的进程?

2 个答案:

答案 0 :(得分:0)

我确信Windows会处理这个问题。一个进程将在一个核心上执行。应用程序使用哪个核心,将由OS决定。如果你启动一个新线程,os将决定该线程运行的核心。您应该只管理您的流程并让Windows完成其工作。

我们为许可证支付了很多钱的方式:)

答案 1 :(得分:0)

Windows将在可用的CPU资源(包括多个核心)上安排多个守护程序进程。

即使每个进程可能是单线程的,您仍然可以通过在多核计算机上运行多个进程来实现并行处理。

请注意,每个守护程序进程可能不会严格安排到单独的核心。完全可能的是,如果所有守护程序进程不是很繁忙,它们将在同一核心上的不同时间进行调度。它们也可能会从一个核心移动到另一个核心,同时运行" (虽然这需要一些费用)。 Windows Scheduler的目的是优化可用CPU资源的使用。

有关Windows计划程序如何运作的详细信息,建议您查看the MSDN documentation