我对 CPU 中的多核有疑问。假设我同时在几个程序中工作,例如: - Photoshop - Autodesk Maya - Visual Studio - 虚幻引擎
如果我的 CPU 中有更多内核,则意味着这些程序的执行速度会更快(例如一个程序的每个内核等)
操作系统使用进程和线程的概念来运行程序。
加载程序时,会创建一个进程。该进程拥有自己的内存和凭据,并且该进程只能读取/写入自己的内存,并通过内核执行其凭据允许的任何操作。
在单 CPU 系统上,操作系统遍历每个正在运行的进程并为其分配一部分 CPU 时间,循环。在给定的时刻实际上只有一个进程在执行。(如果一个进程正在等待或“阻塞”I/O,这是一种非常常见的情况,它会被跳过。)
一个进程可以将自己的一部分拆分为一个线程。这本质上是单个进程的两个部分,在 CPU 上有两个单独的轮次(所有进程线程都“存在于”进程中并且可以看到它的内存)。
一个进程也可以
如果有多个 CPU 内核,而一个进程在单个内核上开始,操作系统可以将其线程放在其他内核上,如果进程产生或派生其他进程,它可以将它们放在父进程以外的其他内核上。
操作系统管理它使用的核心,甚至可能不时透明地将进程迁移到不同的 CPU 以保持平衡。在 Windows 和 Linux 上,您可以固定 CPU“关联性”,因此如果您愿意,它仅保留在特定内核上。
因此,如果应用程序产生线程和/或进程来完成其工作,它将受益于多个 CPU 内核。如果没有,该特定程序将不会。您的操作系统仍会将其他程序分配给其他内核,因此这可能意味着其他程序对您的单线程单进程程序的影响较小。