- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第10章 线程控制1级标题格式。
1级标题格式。
线程技术早在20世纪60年代就被提出,20世纪80年代中期多线程被应用到操作系统中。目前,多线程技术已经被许多操作系统所支持,包括Windows NT/2000和Linux。
Linux是一个多用户、多任务的操作系统。多用户是指多个用户可以在同一时间使用计算机系统;多任务是指Linux可以同时执行几个任务,它可以在还没有执行完一个任务时又执行另一项任务。在操作系统设计上,从进程(P英文单词首字母大写。rocess)演化出线程(Thread),最主要的目的就是更好地支持多处理器,并且减小(进程/线程)上下文切换的开销。线程是在共享内存空间中并发的多道执行路径,它们共享一个进程的资源。在两个普通进程(非线程)间进行切换时,内核准备从一个进程的上下文切换到另一个进程的上下文要有很大的花费,包括保存老进程CPU状态,并加载新进程的保存状态,用新进程的内存映像替换老进程的内存映像。章首语格式:本章内容的概况、引入、说明等。不少于4行文字。
英文单词首字母大写。
章首语格式:本章内容的概况、引入、说明等。不少于4行文字。每章必须有章首语。
Linux线程2级标题格式。
2级标题格式。
根据操作系统的定义,进程是系统资源管理的最小单位,线程是计算机中程序执行的最小单位,运行时占用的系统资源较少,一个进程可以拥有多个线程。本节介绍Linux线程的一些基本概念,包括线程和进程的关系、线程的分类等。节首语格式:一般是本节要点,关键性的定义等。不少于2行。若有节首语,全书各节(小结、习题除外)都要有;否则各节均没有。
节首语格式:一般是本节要点,关键性的定义等。不少于2行。若有节首语,全书各节(小结、习题除外)都要有;否则各节均没有。
线程和进程的关系3级标题格式。
3级标题格式。
线程和进程十分相似,不同的只是线程比进程小,每个线程所占用的CPU时间是由系统分配的,也可以认为线程是操作系统分配CPU时间的基本单位,进程可以同时使用多个CPU来执行各个线程,达到最大程度的并行,以提高效率。一个进程至少需要一个线程作为它的指令执行体。从用户的角度看多个线程是同时执行的,从操作系统的角度看各个线程是交替执行的。系统不停地在各个线程之间切换,每个线程只有在系统分配的时间内才能获得CPU的控制权。
如果是在CPU多核的主机上,多个线程是可以同时运行的。小提示/重点标注格式。
小提示/重点标注格式。
Linux是支持多线程的,在一个进程内生成多个线程。一个进程可以拥有一个或多个线程。线程和进程二者之间的关系有以下几点:
1)表示步骤和罗列用1)、2)3)的形式排序。线程采用了多个线程可共享资源的设计思想。在多进程情况下,每个进程都有自己独立的地址空间,在多线程情况下,同一进程内的线程共享进程的地址空间。线程和进程的最大区别在于线程完全共享相同的地址空间,运行在同一地址上。
表示步骤和罗列用1)、2)3)的形式排序。
2)由于进程地址空间独立而线程共享地址空间,所以从一个线程切换到另一线程所花费的代价比进程低。
3)进程本身的信息在内存中占用的空间比线程大。因此,线程更能充分地利用内存。线程可以看作是在进程内部执行的指定序列。
4)线程间的通信比进程间的通信更加方便和省时。进程间的数据空间相互独立,彼此通信要以专门的通信方式进行,通信时必须经过操作系统,而同一进程的多个线程共享数据空间,一个线程的数据可以直接提供给其他线程使用,不必进过操作系统。
线程机制支持并发程序设计技术,在多处理器上能真正保证并行处理。而在Linux实现线程很特别,Linux把所有的线程都当作进程实现。
Linux下线程看起来就像普通进程(只是该进程和其他进程共享资源,如地址空间)。上述机制与Microsoft windows或是Sun Solaris实现差异很大。这些系统提供专门支持线程机制(轻量级进程)。
一个进程的组成实体可以分为两大部分:线程集和资源集。进程中的线程是动态的对象,代表了进程指令的执行过程。资源,包括地址空间、打开的文件、用户信息等等,由进程内的线程共享。线程有自己的私有数据:程序计数器,栈空间以及寄存器。但是由于各线程共享进程的地址空间,因此可能会导致竞争,因此对某一块有多个线程要访问的数据需要一些同步技术。
系统支持POSIX多线程接口,称为pthread(Posix Thread)。编写Linux下的多线程应用程序需要使用头文件pthread.h,连接时需要使用库libpthread.a。
线程分类
线程是一些相关指令的离散序列,线程与其它指令序列的执行相互独立,每个程序至少包括一个线程,即主线程。主线程负责程序的初始化工作,并且执行初始指令。此后主线程会为执行各种不同的任务决定是分别创建其它线程还是由主线程独
文档评论(0)