大家好,在我的前面的文章中,给大家讲述了线程进程的概念、进程的状态和转换机制、线程的引入,下面来讲讲线程的实现机制。
线程的实现主要有三种机制:
1、用户级线程
2、核心级线程
3、混合-两者结合线程
用户级线程
如上图,用户级线程顾明思义是在用户空间建立线程库。用户控件的线程库提供函数接口来进行线程管理。具体的线程管理是通过一个Run-time System(实时性系统)来进行管理的,该系统完成线程的创建、构建线程存储表,然而由于线程的实现都是在用户空间,所以操作系统的内核并不知道线程的存在(内核管理的仍然是进程),所以线程的切换不需要操作系统内核的干预,速度快。
例子:Linux
优点:
1、线程切换快
2、调度算法由应用程序特定
3、用户级的线程可以运行在任何操作系统上(只需要实现线程库)
缺点:
1、内核只将处理器分配给进程,同一进程中的两个线程不能同时运行于两个处理器上
2、大多数系统调用是阻塞的,因此,由于内核阻塞进程,故进程中所有线程也被阻塞
核心级线程
如上图,核心级线程是内核管理所有线程,通过AP