zoukankan      html  css  js  c++  java
  • 线程的实现机制

    线程的实现分为三种:1、用户级线程
              2、核心级线程
              3、两者结合方法

    一、用户级线程(ULT)

      1、特点

        1.1、由应用程序完成所有线程的管理  

            通过线程库(用户空间)  

            一组管理线程的过程

        1.2、内核不知道线程的存在

        1.3、线程切换不需要核心态特权

        1.4、调度是应用特定的 

      2、线程库

        2.1、创建、撤销线程

        2.2、在线程之间传递消息和数据

        2.3、调度线程执行

        2.4、保护和恢复线程上下文

      3、对用户级线程的核心活动

        3.1、核心不知道线程的活动,但仍然管理线程的进程的活动

        3.2、当线程调用系统调用,整个进程阻塞

        3.3、但对线程库来说,线程仍然是运行状态,即线程状态是与进程状态独立的

      4、用户级线程的优点和缺点

        4.1、优点

          4.1.1、线程切换不调用核心

          4.1.2、调度是应用程序特定的:可以选择最好的算法

          4.1.3、ULT可运行在任何操作系统上(只需要线程库)

        4.2、缺点

          4.2.1、大多数系统调用是阻塞的,因此核心阻塞进程,故进程中所有线程将被阻塞

          4.2.2、核心只将处理器分配给进程,同一进程中的两个线程不能同时运行于两个处理器上

    二、核心级线程(KLT)

      1、特点

        1.1、所有线程管理由内核完成

        1.2、没有线程库,但对核心线程工具提供API

        1.3、内核维护进程和线程的上下文

        1.4、线程之间的切换需要内核支持

        1.5、以线程为基础进行调度

      2、核心级线程的优点和缺点

        2.1、优点

          2.1.1、对多处理器,内核可以同时调度同一进程的多个线程

          2.1.2、阻塞是在线程一级完成

          2.1.3、核心例程是多线程的

        2.2、缺点: 在同一进程内的线程切换调用内核,导致速度下降

    三、ULT和KLT结合方法

      1、线程创建在用户空间完成

      2、大量线程调度和同步在用户空间完成

      3、程序员可以调整KLT的数量

      4、可以取两者中最好的

  • 相关阅读:
    SharePoint 创建 Lookup 类型的Site Column解决跨站问题
    Thinking In Design Pattern——MVP模式演绎
    SharePoint自动化部署,利用SPSD工具包
    SharePoint自动化部署,利用PowerShell 导出/导入AD中的用户
    64位内核第十四讲,获取系统滴答数与日期时间
    内核中通过进程PID获取进程的全部路径
    内核中根据进程Pid获取卷的全目录
    内核中PID_HANDLE_OBJECT等互相转换
    获取指定句柄的类型号.
    获取句柄的类型以及对应的ID序号
  • 原文地址:https://www.cnblogs.com/zjzsky/p/3540443.html
Copyright © 2011-2022 走看看