为什么这个单线程程序使用了所有 CPU 核心?

为什么这个单线程程序使用了所有 CPU 核心?

我正在运行一个程序,我认识的程序开发人员告诉我,该程序完全是单线程的。但是,如下图所示,该程序实际上正在使用我所有的 CPU 核心。因此,我想知道为什么会这样。根据程序的不同,Windows 是否仍然可以在超过 1 个核心中运行单线程程序?我知道这个问题听起来很傻,但我找不到更好的表达方式。在此处输入图片描述

答案1

它不是同时使用所有核心,它只是被操作系统停止,当重新启动时,它会被安排在不同的核心上。

单线程程序一次只能在一个核心上运行,但作为多任务操作系统的一部分,数百个程序和任务被不断地停止和启动,并且对于用户来说,哪个核心用于哪个程序基本上是随机的。

你的程序可以在任何可用的核心上运行,但它不能在多个核心上运行同时

这些图表不够精确,无法显示单个 CPU 时间片。

如果开发人员向你保证这是一个单线程程序,那么肯定有其他原因。要么他使用了一些库或加载器,多线程,或者其他东西正在同时使用您的系统。

相关内容