zoukankan      html  css  js  c++  java
  • 操作系统知识--线程

    线程

    线程又叫迷你进程。线程比进程更轻,更容易创建。切换更容易。若存在大量的密集计算和IO操作。拥有多个线程允许这些活动重叠进行。

    例子。当我们用文字处理软件处理文字的时候,会有多线程。一个和用户的gui界面交互。一个是处理文件的自动备份。如果是单线程的话。当备份的时候,键盘的操作就会被忽略。对用户不友好。

    线程模型

    进程拥有一个执行的线程,在该线程中有一个程序计数器,寄存器,以及堆栈记录历史纪录。进程用于把资源合在一起,线程则是CPU调度的基本单元。

     左边的是进程中的内容,也就是所有线程都共享的,右边的数据是单个线程中的内容,和其他线程不共享

    当一个线程完成工作后,通过(thread_exit) 退出

    另外一个常见的线程调用时(thread_yield) 它允许线程自动放弃CPU而让另一个线程运行

    POSIX 线程

    为了实现可移植的程序。IEEE制定了线程的标准。

    在用户空间实现线程。把整个线程放在用户空间。内核一无所知。

    用户级线程,可以用用户实现自己的调度算法。 

    内核中实现线程。采用系统调用。内核中存放线程表.在内核中创建和撤销线程,代价是非常高的。所以采用让这个线程不可运行的标识。

    混合实现

    内核识别内核线程,进行调度。一些内核线程对多个用户线程复用。

  • 相关阅读:
    Jquery揭秘系列:实现$.fn.extend 和$.extend函数
    小谈Jquery框架
    js实现可拖动Div
    WebApp 九宫格抽奖简易demo
    原生js实现autocomplete插件
    扩展RadioButtonListFor和CheckBoxListFor
    关于js的回调函数的一点看法
    原生js实现fadein 和 fadeout
    QlikView sheet权限
    asp.net MVC 文件流导出Excel
  • 原文地址:https://www.cnblogs.com/tl542475736/p/7705101.html
Copyright © 2011-2022 走看看