发布网友 发布时间:2024-09-08 10:33
共1个回答
热心网友 时间:2024-11-06 22:51
线程的实现分为用户级线程和内核级线程。用户级线程在用户程序中实现,不依赖内核支持,通过线程库进行控制。创建、撤消和调度无需内核参与,速度快,但线程阻塞会阻塞整个进程。内核级线程由操作系统内核创建和管理,进程和线程的上下文信息由内核维护。一个线程阻塞不会影响其他线程运行。用户级线程与内核级线程的区别在于:用户级线程内核不可感知,而内核级线程内核可感知;用户级线程在语言层面处理,内核级线程需内核支持;用户级线程执行系统调用时,整个进程被中断,内核级线程仅中断该线程;用户级线程以进程为单位调度,内核级线程以线程为单位调度;用户级线程在用户态执行,内核级线程可在任何状态下执行。内核级线程优点在于多核处理器环境下,进程中的多个线程可同时执行;缺点在于由内核进行调度。用户级线程的优点是调度简单,可以实现于不支持线程的操作系统中,线程管理代价低,允许定制调度算法,线程占用的表空间和堆栈空间较大;缺点是资源调度基于进程,多个处理器下同一进程线程只能在相同处理器上运行,同一进程中只能同时有一个线程运行,线程阻塞会阻塞整个进程。