【发布时间】:2016-01-01 21:52:12
【问题描述】:
谁能解释一下什么是交错多线程方式? 也允许实时示例。
【问题讨论】:
-
没有一个答案能将交错多线程与 SMT 区分开来。
标签: c multithreading thread-safety pthreads
谁能解释一下什么是交错多线程方式? 也允许实时示例。
【问题讨论】:
标签: c multithreading thread-safety pthreads
wiki 说:
交错多线程的目的是删除所有数据 执行管道的依赖关系停止。由于一个线程是 相对独立于其他线程,出现的机会较少 一个管道阶段中的指令需要来自较旧的输出 流水线中的指令。从概念上讲,它类似于抢占式 操作系统中使用的多任务处理;一个类比是 给每个活动线程的时间片是一个 CPU 周期。
【讨论】:
This Wikipedia page 解释得很好。
基本上它是关于在 CPU 上交错来自不同操作系统级线程的指令,以降低指令之间代价高昂的依赖关系的风险。
【讨论】:
英特尔将其描述为超线程。 CPU 有一个带有 2 个寄存器组的单核。
这些可用于提高内核的利用率。
这对代码是不透明的,因为它的行为类似于 2 个内核。但是一次只能运行一个。
如果是多线程的,您的代码仍然需要原子、互斥体等
【讨论】: