免费成人看片_91理论片_9191成人_992tv在线成人免费观看_国产123区在线观看_久久精品国产免费

首页 新闻 > 科技 > 正文

多线程编程之:Linux线程概述

9.1 Linux线程概述

本文引用地址:http://www.eepw.com.cn/article/264052.htm

9.1.1 线程概述

前面已经提到,进程是系统中程序执行和资源分配的基本单位。每个进程都拥有自己的数据段、代码段和堆栈段,这就造成了进程在进行切换等操作时都需要有比较复杂的上下文切换等动作。为了进一步减少处理机的空转时间,支持多处理器以及减少上下文切换开销,进程在演化中出现了另一个概念——线程。它是进程内独立的一条运行路线,处理器调度的最小单元,也可以称为轻量级进程。线程可以对进程的内存空间和资源进行访问,并与同一进程中的其他线程共享。因此,线程的上下文切换的开销比创建进程小很多。

同进程一样,线程也将相关的执行状态和存储变量放在线程控制表内。一个进程可以有多个线程,也就是有多个线程控制表及堆栈寄存器,但却共享一个用户地址空间。要注意的是,由于线程共享了进程的资源和地址空间,因此,任何线程对系统资源的操作都会给其他线程带来影响。由此可知,多线程中的同步是非常重要的问题。在多线程系统中,进程与进程的关系如图9.1所示。

图9.1 进程与线程关系

9.1.2 线程机制的分类和特性

线程按照其调度者可以分为用户级线程和核心级线程两种。

(1)用户级线程。

用户级线程主要解决的是上下文切换的问题,它的调度算法和调度过程全部由用户自行选择决定,在运行时不需要特定的内核支持。在这里,操作系统往往会提供一个用户空间的线程库,该线程库提供了线程的创建、调度和撤销等功能,而内核仍然仅对进程进行管理。如果一个进程中的某一个线程调用了一个阻塞的系统调用函数,那么该进程包括该进程中的其他所有线程也同时被阻塞。这种用户级线程的主要缺点是在一个进程中的多个线程的调度中无法发挥多处理器的优势。

(2)轻量级进程。

轻量级进程是内核支持的用户线程,是内核线程的一种抽象对象。每个线程拥有一个或多个轻量级线程,而每个轻量级线程分别被绑定在一个内核线程上。

(3)内核线程。

这种线程允许不同进程中的线程按照同一相对优先调度方法进行调度,这样就可以发挥多处理器的并发优势。

现在大多数系统都采用用户级线程与核心级线程并存的方法。一个用户级线程可以对应一个或几个核心级线程,也就是“一对一”或“多对一”模型。这样既可满足多处理机系统的需要,也可以最大限度地减少调度开销。

使用线程机制大大加快上下文切换速度而且节省很多资源。但是因为在用户态和内核态均要实现调度管理,所以会增加实现的复杂度和引起优先级翻转的可能性。一个多线程程序的同步设计与调试也会增加程序实现的难度。

关键词: Linux 多线程 内核

最近更新

关于本站 管理团队 版权申明 网站地图 联系合作 招聘信息

Copyright © 2005-2018 创投网 - m.vdsvyglz.cn All rights reserved
联系我们:33 92 950@qq.com
豫ICP备2020035879号-12

 

主站蜘蛛池模板: 黄色大视频 | 桃花色综合影院 | 亚洲网站在线免费观看 | 久草国产精品 | 久久青草免费97线频观 | 午夜福利国产一级毛片 | 国产九色在线 | 国产精品jizz在线观看老狼 | 色男人网 | 好看的中文字幕在线 | 麻豆果冻传媒精品 | 国产精品网站在线观看 | 亚洲精品免费观看 | 国产高清免费吃奶在线观看 | 真人无码作爱免费视频禁hnn | 久久aⅴ免费观看 | 天堂av2017男人的天堂 | 国产网站免费 | 久操免费在线观看 | 欧美精品一区二区三区四区 | 青草五月天 | 色欲麻豆国产福利精品 | 国产成人精品曰本亚洲 | 91视频在线观看网址 | 一区二区三区免费观看 | 国产md视频一区二区三区 | 伊人久久综合色 | 永久免费的av片在线电影网 | 美女久久 | 少妇扒开粉嫩小泬视频 | 三级网在线观看 | 免费观看黄色大片 | 伊人亚洲 | 亚洲欧美日韩国产精品26u | 中文字幕一区二区三区永久 | 热er99久久6国产精品免费 | 亚洲国产精品一区二区www | 影音先锋久久久久av综合网成人 | 人妻精品久久久久中文字幕69 | 99蜜桃在线观看免费视频网站 | 色妞ww精品视频7777 |