zoukankan      html  css  js  c++  java
  • 用户级线程和内核级线程的区别

    (1)内核支持线程是OS内核可感知的,而用户级线程是OS内核不可感知的。

    (2)用户级线程的创建、撤消和调度不需要OS内核的支持,是在语言(如Java)这一级处理的;而内核支持线程的创建、撤消和调度都需OS内核提供支持,而且与进程的创建、撤消和调度大体是相同的。

    (3)用户级线程执行系统调用指令时将导致其所属进程被中断,而内核支持线程执行系统调用指令时,只导致该线程被中断。

    (4)在只有用户级线程的系统内,CPU调度还是以进程为单位,处于运行状态的进程中的多个线程,由用户程序控制线程的轮换运行;在有内核支持线程的系统内,CPU调度则以线程为单位,由OS的线程调度程序负责线程的调度。

    (5)用户级线程的程序实体是运行在用户态下的程序,而内核支持线程的程序实体则是可以运行在任何状态下的程序。

    内核线程的优点:

    (1)当有多个处理机时,一个进程的多个线程可以同时执行。

    缺点:

    (1)由内核进行调度。

    用户进程的优点:

    (1) 线程的调度不需要内核直接参与,控制简单。

    (2) 可以在不支持线程的操作系统中实现。

    (3) 创建和销毁线程、线程切换代价等线程管理的代价比内核线程少得多。

    (4) 允许每个进程定制自己的调度算法,线程管理比较灵活。这就是必须自己写管理程序,与内核线程的区别

    (5) 线程能够利用的表空间和堆栈空间比内核级线程多。

    (6) 同一进程中只能同时有一个线程在运行,如果有一个线程使用了系统调用而阻塞,那么整个进程都会被挂起。另外,页面失效也会产生同样的问题。

    缺点:

    (1)资源调度按照进程进行,多个处理机下,同一个进程中的线程只能在同一个处理机下分时复用

  • 相关阅读:
    mysql时间日期的加、减
    IDEA 下的svn检出maven代码
    IDEA中如何显示和关闭工具栏、目录栏
    Idea集成使用SVN教程
    Python PEP8 代码规范常见问题及解决方法
    Word文档中手写签名操作说明
    19.名称空间和作用域
    18.函数的参数
    17.文件处理
    16.字符编码
  • 原文地址:https://www.cnblogs.com/yangqiong1989/p/10745230.html
Copyright © 2011-2022 走看看