代码之家  ›  专栏  ›  技术社区  ›  ampawd

当两个线程在一个具有多核CPU机器的1个物理CPU核上执行时?

  •  0
  • ampawd  · 技术社区  · 7 年前

    假设有一台机器有8核CPU。

    我正在使用standard创建2个posix线程 pthread_create(...) 作用

    同时运行(或并行运行)。至少在我的案子里我看到了 top 命令显示2个cpu正在运行。。。因此,大约160-180%的CPU使用率

    问题是:

    1 回复  |  直到 7 年前
        1
  •  0
  •   David Schwartz    7 年前

    两种情况:

    1) 其他物理核忙于做其他事情,所以这个过程只使用一个核。这两个线程在该内核上交替运行。

    2) 物理内核支持使用超线程或类似的方法并发执行多个线程。其他物理内核忙于做其他事情,因此调度程序所能做的最好的事情就是在单个物理内核中运行两个线程。