在不同的操作系统,线程的实现方式是不一样的
OS/2,Windows实现的内核级线程;而很多数据库管理系统实现的是用户级线程;还有Solaris实现两种类型的线程
用户级线程:

内核级线程:

内核:其实就是最靠近硬件一层的代码
用户级线程特点:线程库适用于管理用户级线程的软件包,是供所有应用程序共享的应用既实用程序,里面包含线程各种操作的代码,不同的应用程序利用线程库设计多线程程序
1.用户级线程的创建,撤销,以及切换都不利用系统调用,这种线程与内核无关,内核不知道这种线程的存在
2.用户级线程的调度由其所属的进程进行调度,内核只负责对进程的调度
3.线程切换不需要系统状态的转换,也就不需要系统调用,会减少用户态<-->和心态转换的时空开销
4.每个进程可以使用本进程专用的线程调度算法来调度线程
5.用户级线程可以在任何操作系统中运行
6.当用户级线程调用一个系统调用时,系统会认为是线程所在进程的行为,因此进程会被阻塞,进程内所有线程都不能执行
7.不能利用多处理

本文探讨了计算机操作系统中内核级线程和用户级线程的区别。用户级线程的创建、调度和切换不涉及内核,适合在任何操作系统中运行,但在系统调用时会导致整个进程阻塞。内核级线程则通过系统调用,能真正实现并行,但线程切换开销较大。Solaris系统通过轻型进程(LWP)实现了用户级和内核级线程的混合模型。
最低0.47元/天 解锁文章
4071

被折叠的 条评论
为什么被折叠?



