多线程(multithreading)是指从软件或者硬件上实现多个线程并发执行的技术。具备多线程处理能力的计算机能够在硬件支持下同时执行多个线程,进而提升整体处理性能。[5]
多线程技术自1950年代起,经历了从早期NBS SEAC和DYSEAC的双线程系统,到Lincoln Labs TX-2支持33个线程的演变。1960年代,CDC 6600和IBM ACS-360等系统通过引入多线程提升了硬件资源利用率。1970年代与1980年代,HEP、Xerox Alto、Transputer等项目进一步扩展了多线程的应用。1990年代,Tera MTA和华盛顿大学的SMT研究带来了技术突破。2000年代,Cray/Tera MTA-2和Intel Pentium 4 HT的推出,以及超线程技术的商业化,标志着多线程技术的成熟。[6]多线程技术通过细粒度、粗粒度和同步多线程等方式,[1][2][3]利用时间分片机制实现单个程序内多个线程的并行运行,每个线程按照分配的时间片轮流使用CPU,实现任务的并行处理。[4] 多线程通过后台处理耗时任务、增强界面互动和资源利用,提升了程序效率和用户体验,尤其在iOS开发中效果显著。然而,它也带来了性能、内存、稳定性和死锁等挑战。[7] 概述
线程