IOS 线程与进程的区别

发布时间:2020-07-12 21:20:14 作者:RoderickKennedy
来源:网络 阅读:529

线程是进程中某一个单一顺序的控制流,也被成为轻量级进程(lightweight processes)是CPU调度和分派的基本单元;进程是操作系统结构的基础,是一个正在执行的程序,计算机中正在运行的程序实例,可以分配给处理器并由处理器执行的一个实体,由单一顺序的执行显示,一个当前状态和一组相关的系统资源所描述的活动单元。也被称之为重量级进程(heavyweight processes)

从调度、并发性、系统开销、拥有资源等方面对线程和进程进行比较

调度

在传统的操作系统中,CPU调度和分派的基本单位是进程,而在引入线程的操作系统中则把线程作为CPU调度和分 派的基本单位,进程则作为资源拥有的基本单位,从而使传统进程的两个属性分开,线程便能轻装运行,这样可以显著提高系统的并发性。同一进程中线程的切换不会引起进程的切换,从而避免了昂贵的系统调用,但是在由一个进程中的线程切换到另一个进程中的线程时便会引起进程的切换。

并发性

在引入线程的操作系统中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间也可以并发执行,因而使操作系统具有更好的并发性,从而能够有效的利用系统资源和提高系统的吞吐量。例如,在一个未引入线程的单CPU操作系统中,若仅设置一个文件服务进程当它由于某种原因被封锁时,变没有其他的文件服务进行来提供服务,在引入了线程的操作系统中,可以在一个文件服务进程中设置多个线程,当第一个线程等待时,文件服务进程中的第二个线程可以继续运行;当第二个线程封锁封锁时,第三个线程可以继续执行从而显著提高了文件服务的质量以及系统的吞吐量

系统开销

无论是引入了线程的操作系统还是传统的操作系统,进程都是拥有系统资源的一个独立单位,他可以拥有自己的资源,一般线程自己不拥有系统资源但它可以访问它隶属的进程的资源。也就是说,一个进程的代码段数据段及系统资源可供同一进程的其他所有线程使用。

拥有资源

由于在创建或撤销进程时,系统都要为之分配或回收资源,如内存空间 I/O设备等,因此操作系统所付出的开销将显著的大于在创建或撤销进程时的开销。类似的在进程切换时,涉及到整个当前进程CPU环境的保存环境的设置以及新被调度运行的进程的CPU环境的设置,而线程的切换只需保存和设置少量寄存器的内容,并不涉及寄存器管理方面的操作。可见进程切换的开销要远远大于线程切换的开销,此外由于同一进程中的多个线程具有相同的地址空间,致使他们之间的同步和通信的实现也变得相对容易,在有的系统中线程的切换同步和通信都无需操作系统内核干预。



推荐阅读:
  1. 2019 全网 iOS 面试题以及答案总结!
  2. iOS开发常见面试题

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

面试 进程 线程

上一篇:[读书笔记]ORACLE数据库文件管理

下一篇:使用scrapy简易爬取豆瓣9分榜单图书并存放在mysql数据库中

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》