【问题标题】:Threads on a multiprocessor system多处理器系统上的线程
【发布时间】:2014-05-01 08:17:51
【问题描述】:

clone() 函数是否利用了多处理器系统?

我的意思是,如果我在一个主进程中使用 clone() 函数创建了许多线程,这些创建的线程会同时在不同的处理器上执行吗?

谢谢

【问题讨论】:

  • clone 不是 Posix 函数。
  • 感谢指正,已更改!

标签: c linux multithreading multiprocessing clone


【解决方案1】:

您通常无法从用户空间控制处理器(有一些例外)。内核决定如何将所有单独的执行上下文分配到可用的硬件处理器上。它可能会尝试变得漂亮和智能(即,一个睡眠线程在它进入睡眠的同一个 CPU 上被唤醒,如果没有争用,单独的线程应该分布在可用的 CPU 上),但是一个真正的操作系统运行多个进程是一件复杂的事情,处理器的选择取决于很多因素。

【讨论】:

  • 所以如果我用克隆创建许多线程,它们可能分布在许多处理器上?
  • 是的,他们可能会。但是考虑clone真的令人困惑和毫无意义的。你不应该使用或知道clone
猜你喜欢
  • 1970-01-01
  • 2014-08-17
  • 2013-07-01
  • 2013-04-13
  • 1970-01-01
  • 2012-08-26
  • 1970-01-01
  • 2020-02-26
  • 1970-01-01
相关资源
最近更新 更多