CPU 中的多个内核是否会影响我可以运行的程序数量?

0 cpu cpu-cores

我对 CPU 中的多核有疑问。假设我同时在几个程序中工作,例如: - Photoshop - Autodesk Maya - Visual Studio - 虚幻引擎

如果我的 CPU 中有更多内核,则意味着这些程序的执行速度会更快(例如一个程序的每个内核等)

Law*_*ceC 6

操作系统使用进程和线程的概念来运行程序。

加载程序时,会创建一个进程。该进程拥有自己的内存和凭据,并且该进程只能读取/写入自己的内存,并通过内核执行其凭据允许的任何操作。

在单 CPU 系统上,操作系统遍历每个正在运行的进程并为其分配一部分 CPU 时间,循环。在给定的时刻实际上只有一个进程在执行。(如果一个进程正在等待或“阻塞”I/O,这是一种非常常见的情况,它会被跳过。)

一个进程可以将自己的一部分拆分为一个线程。这本质上是单个进程的两个部分,在 CPU 上有两个单独的轮次(所有进程线程都“存在于”进程中并且可以看到它的内存)。

一个进程也可以

  • 产生另一个单独的新进程——即加载一个单独的程序。Windows 资源管理器在启动程序时会生成进程。
  • fork 另一个进程——即创建一个自己的副本,作为一个单独的进程(而不是一个线程)——这在 Unix/Linux 操作系统中很常见。

如果有多个 CPU 内核,而一个进程在单个内核上开始,操作系统可以将其线程放在其他内核上,如果进程产生或派生其他进程,它可以将它们放在父进程以外的其他内核上。

操作系统管理它使用的核心,甚至可能不时透明地将进程迁移到不同的 CPU 以保持平衡。在 Windows 和 Linux 上,您可以固定 CPU“关联性”,因此如果您愿意,它仅保留在特定内核上。

因此,如果应用程序产生线程和/或进程来完成其工作,它将受益于多个 CPU 内核。如果没有,该特定程序将不会。您的操作系统仍会将其他程序分配给其他内核,因此这可能意味着其他程序对您的单线程单进程程序的影响较小。