【问题标题】:How many cores does a process occupy?一个进程占用多少核?
【发布时间】:2016-07-23 21:55:15
【问题描述】:

假设我的机器上有 4 个内核,并且我有一个生成 4 个线程的进程,虽然这是当前计划的进程,但所有 4 个内核是否都为进程的 4 个线程保留?

【问题讨论】:

  • Linux 实际上是schedules threads,而不是进程。当我们谈论调度进程时,我们通常指的是经典的、简化的单线程进程。

标签: linux multithreading pthreads


【解决方案1】:

这是一个非常复杂的问题。不过,我可以帮忙。作为一般规则,1 个进程仅使用 1 个核心。实际上,1个线程只能由1个核心执行。如果你有一个双核处理器,它实际上是将 2 个 CPU 粘在同一台电脑上。这些被称为物理处理器。这些物理处理器执行 1 个线程。虽然,有些 CPU 有 2 个物理内核,但能够同时运行 4 个线程。这些额外的 2 个线程在逻辑核心上运行。它们在物理上不存在,但在逻辑上存在于 cpu 中。

如果你的意思是线程,那么是 1 个进程 1 个核心。您可以在具有 4 个计算核心的 cpu 上运行 4 个线程(该名称包括物理和逻辑核心,因为单核 cpu 可能只有 1 个计算核心)。

如果进程是指任务管理器中进程选项卡中的程序或进程,则取决于程序的编写方式。

根据您的问题判断,如果一个进程产生 4 个线程,则取决于它在池中的位置。有数千个线程等待执行。每个程序或可执行文件的线程不必同时执行。

【讨论】:

    【解决方案2】:

    您的进程的 4 个线程是独立调度的 - 进程本身没有被调度。

    如果所有 4 个线程都可以同时运行,并且系统中没有其他更高优先级的可运行线程,那么所有 4 个线程可能会同时调度在您的 4 个内核上。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-13
      • 2013-05-16
      • 2017-02-06
      • 2011-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多