【问题标题】:What is meant by interleaved "multi-threading" in c?c中交错的“多线程”是什么意思?
【发布时间】:2016-01-01 21:52:12
【问题描述】:

谁能解释一下什么是交错多线程方式? 也允许实时示例。

【问题讨论】:

  • 没有一个答案能将交错多线程与 SMT 区分开来。

标签: c multithreading thread-safety pthreads


【解决方案1】:

wiki 说:

交错多线程的目的是删除所有数据 执行管道的依赖关系停止。由于一个线程是 相对独立于其他线程,出现的机会较少 一个管道阶段中的指令需要来自较旧的输出 流水线中的指令。从概念上讲,它类似于抢占式 操作系统中使用的多任务处理;一个类比是 给每个活动线程的时间片是一个 CPU 周期。

【讨论】:

    【解决方案2】:

    This Wikipedia page 解释得很好。

    基本上它是关于在 CPU 上交错来自不同操作系统级线程的指令,以降低指令之间代价高昂的依赖关系的风险。

    【讨论】:

      【解决方案3】:

      英特尔将其描述为超线程。 CPU 有一个带有 2 个寄存器组的单核。

      这些可用于提高内核的利用率。

      这对代码是不透明的,因为它的行为类似于 2 个内核。但是一次只能运行一个。

      如果是多线程的,您的代码仍然需要原子、互斥体等

      【讨论】:

        猜你喜欢
        • 2012-04-27
        • 1970-01-01
        • 2012-05-04
        • 1970-01-01
        • 2015-06-02
        • 2013-03-09
        • 1970-01-01
        • 2020-11-25
        • 2019-09-12
        相关资源
        最近更新 更多