线程的实现方式
-
内核支持线程(KST)
这种实现方式的优点:
1.在多处理器系统中,内核能够同时调度同一进程中的多个线程并行执行。
2.其中一个进程被阻塞了,内核可以调度该进程中其他线程上有处理器运行,也可以运行其他进程中的线程。
3.内核支持线程具有较小的数据结构和堆栈,线程的切换比较快,切换开销小。
4.内核本身也采用多线程技术,提高系统运行效率。 -
用户级线程线程(ULT)
这种方式实现的优点:
1.线程切换不需要转换到内核空间。
2.调度算法可以是进程专业的。
3.与实现的平台没有关系。
主要缺点:
1.系统调用阻塞问题。
2.单纯的用户线程实现方式中,多线程应用不能利用多处理机进行多重处理的优点,内核每次分配给一个进程仅有一个CPU,因此,进程中仅有一个线程能执行,该进程放弃CUP之前,其他线程只能等待。 -
组合方式(最优的方式)
用户级线程通过时分多路复用内核支持线程来实现。组合方式的线程中,同一个进程内多个线程可以同时在多处理器上并行执行,并且阻塞一个线程,不需要吧整个进程都阻塞。