多线程
维基百科,自由的百科全书
软件多线程。即便处理器只能运行一个线程,操作系统也可以通过快速的在不同线程之间进行切换,由于时间间隔很小,来给用户造成一种多个线程同时运行的假象。这样的程序运行机制被称为软件多线程。如微軟的Windows作業系統和Linux就是在各個不同的執行緒間來回切換,被稱為單人多工作業系統。而DOS這類文字介面作業系統在一個時間只能處理一項工作,被視為單人單工作業系統。
除此之外,许多系统及处理器也支持硬件多线程技术。对称多处理机(SMP)系统具有多个处理器,所以具有真正的同时执行多个线程的能力;CMP技术通过在一块芯片上集成多个核心(Core)也具有真正的多线程能力;CMT技术则稍有不同,有的是依靠硬件执行线程切换来获得多线程能力,操作系统不再负责线程切换,因而这部分开销可以减少甚至消除,这方面典型的例子是Sun的UltraSPARC T1,它同时综合了CMP和CMT。微軟的Windows 2000以後的作業系統皆支援多執行緒與超執行緒技術。
|
|
|
|---|---|
| 概论 | |
| 方式 | |
| 理论 |
Speedup · Amdahl定理 · Flynn's taxonomy (SISD • SIMD • MISD • MIMD) · Cost efficiency · Gustafson定理 · Karp-Flatt metric |
| 元素 | |
| 协调 |
多處理 · 多執行緒 · 多工 · Memory coherency · Cache coherency · Barrier · 同步化 · 分布式计算 · 网格计算 |
| 编程 | |
| 硬件 | |
| 软件 | |
| APIs | |
| 问题 | |

