不同的操作系统使用哪些多线程方法以及它们为何重要:
Multithreading Models
Many-to-One - many user threads to one kernel thread
One-to-One - each user thread is mapped to a kernel thread
Many-to-Many - Many user threads to smaller or equal # of kernel threads
这就是我对多线程模型的了解。
- Solaris 使用多对一
- Linux & Windows 系列(至少对于 XP,不确定 Win7)使用一对一
- IRIX、HP-UX 和 Tru64 UNIX(Solaris v9 之前)使用多对多
为什么它们很重要?
- 响应性 - 在一个线程中浏览网页,在另一个线程中加载图像
- 资源共享 - 允许同一地址空间中的多个活动线程
- 经济 - 创建进程的内存和资源成本很高,而线程共享进程的资源(Solaris 创建进程比线程慢 30 倍)
- 可扩展性 - 在多处理器中,线程可以在不同的处理器上并行运行,单线程进程只能在一个处理器上运行,而不管有多少处理器存在