操作系统 - 经典的线程模型

需要线程的原因分析

        人们需要多线程的主要原因是,在许多应用中同时发生着多种活动,其中某些活动随着时间的推移会被阻塞。通过将这些应用程序分解成可以准并行运行的多个顺序线程,程序设计模型会变得更简单。

        1、在有了多线程概念之后,我们才加入了一种新的元素:并行实体共享同一个地址空间和所有可用数据的能力。对于某些应用而言,这种能力是必须的,而这正式多进程模型(它们具有不同地址空间)所无法表达的。

        2、由于线程比进程更轻量级,所以它们比进程更容易(即更快)创建,也更容易撤销。在许多系统中,创建一个进程较创建一个进程要快10~100倍,在有大量线程需要动态和快速修改时,具有这一特性是很有用的。

        3、需要多线程的第三个原因设计性能方面的讨论。若多个线程都是CPU密集型的,那么那么并不能获得性能上的增强,但是如果存在着大量的计算和大量的I/O处理,拥有多个线程允许这些活动彼此重叠进行,从而会加快应用程序执行的速度。

        4、最后,在多CPU系统中,多线程是有益的,在这样的系统中,真正的并行有了实现的可能。

经典的线程模型

        进程模型基于两种独立的概念:资源分组处理与执行。有时,将这两种概念分开会更有益,这也引入了“线程”这一概念。

        理解进程的一个角度是,用某种方法把相关的资源集中在一起。进程有存放程序正文和数据以及其他资源的地址空间。这些资源中包括打开的文件、子进程、即将发生的报警、信号处理程序、帐号信息等。把它们都放到进程中可以更容易管理。

        另一个概念是,进程拥有一个执行的线程,通常简写为线程(thread)。在线程中有一个程序计数器,用来记录接着要执行哪一条指令。线程拥有寄存器,用来保存线程当前的工作变量。线程还拥有一个堆栈,用来记录执行历史,期中每一桢保存了一个已调用的但是还没有从中返回的过程。进程线程必须在某个进程中执行,但是线程和它的进程是不同的概念,并且还可以分别处理。进程用于把资源集中到一起,而线程则是在CPU上被调度执行的实体。

        线程给进程模型增加了一项内容,即在同一个进程环境中,允许彼此之间有较大独立性的多个线程执行。在同一个进程中并行运行多个线程,是对在同一台计算机上并行运行多个进程的模拟,在前一种情形下,多个线程共享同一个地址空间和其他资源。而在后一种清醒中,多个进程共享物理内存、磁盘、打印机和其他资源。由于线程具有进程的某些性质,所以有时被成为轻量级进程(lightweight process)。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值