0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

进程和线程的关系与区别是什么

Dbwd_Imgtec 来源:未知 作者:胡薇 2018-04-04 09:33 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1定义

进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。

线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。

2关系

一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行。

相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。

3区别

进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。

1) 简而言之,一个程序至少有一个进程,一个进程至少有一个线程。

2) 线程的划分尺度小于进程,使得多线程程序的并发性高。

3) 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。

4) 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

5) 从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。

4优缺点

线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源的管理和保护;而进程正相反。同时,线程适合于在SMP机器上运行,而进程则可以跨机器迁移。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 线程
    +关注

    关注

    0

    文章

    508

    浏览量

    20761
  • 进程
    +关注

    关注

    0

    文章

    208

    浏览量

    14478

原文标题:进程和线程有什么关系?它们的区别又是什么?

文章出处:【微信号:Imgtec,微信公众号:Imagination Tech】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Linux多线程对比单线程的优势

    :「资源利用率」:通过多线程,可以更有效地利用CPU资源,特别是多核CPU。「并行处理」:线程允许同时执行多个任务,提高程序的执行效率。「简化设计」:使用线程可以简化程序设计,因为
    发表于 12-01 06:11

    电压、电位、电势和电平的区别关系

    在电学领域中,电压、电位、电势和电平是几个密切相关的概念,它们既有区别又有联系。理解这些概念的本质及其相互关系,对于掌握电路分析和电子技术至关重要。下面将从定义、计算方法和实际应用等方面,详细阐述
    的头像 发表于 11-24 07:37 149次阅读
    电压、电位、电势和电平的<b class='flag-5'>区别</b>与<b class='flag-5'>关系</b>

    线程与多处理有何区别

    多处理也称为进程进程是一个在自己的内存空间中运行的独立程序。
    的头像 发表于 09-16 14:21 399次阅读

    【HZ-T536开发板免费体验】—— linux创建线程

    线程进程 一个进程指的是一个正在执行的应用程序,而线程的功能是执行应用程序中的某个具体任务。线程具有传统
    发表于 09-01 21:31

    BLDC电机和DD电机区别是什么

    完整资料~~~*附件:bldc电机和dd电机区别是什么.doc (免责声明:本文系网络转载,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请第一时间告知,删除内容!)
    发表于 04-08 16:49

    进程线程、协程傻傻分不清?一文带你彻底扒光它们的\"底裤\"!

    各位程序员朋友(和假装懂技术的同事):如果你在面试时被问到:\"请用奶茶店类比进程线程和协程\",而你回答:\"进程是老板,线程是员工,协程是兼职...\"
    发表于 03-26 09:27

    请问如何在Python中实现多线程与多进程的协作?

    () thread.join() process.join() 我的问题是:**如何合理地组合多线程和多进程以获得更好的性能?**特别是在I/O密集型任务和CPU密集型任务混合的情况下,如何避免性能瓶颈,确保程序的高效运行? 希
    发表于 03-11 06:57

    SMA,3.5mm,2.92mm 连接器的性能区别是什么?

    的性能区别是什么呢?接下来德索精密工业工程师为大家科普一下SMA,3.5mm,2.92mm 连接器的性能区别是什么。
    的头像 发表于 03-01 09:12 1308次阅读
    SMA,3.5mm,2.92mm 连接器的性能<b class='flag-5'>区别是</b>什么?

    DLP4500NIR和DLP4500的区别是什么?

    DLP 4500NIR he DLP 4500的区别是不是只是光学窗口的镀膜不一样?其它型号的DMD是不是只要更换成就近红外波段的光学窗口就能能用于近红外波段?更换光学窗口麻烦吗,有没有做这方面的厂家?
    发表于 02-27 06:18

    请问DLP2000和DLP2010区别是什么?用途有何不同?

    请问DLP2000和DLP2010区别是什么?用途有何不同? DLP2000EVM板能否驱动DLP2010的DLP芯片?
    发表于 02-25 08:11

    关系型数据库和非关系区别

    关系型数据库和非关系型数据库在多个方面存在显著差异,主机推荐小编为您整理发布关系型数据库和非关系区别,以下是它们的主要
    的头像 发表于 01-10 09:58 1453次阅读

    请问ADS1274和ADS1234的区别是什么?

    请问TI的ADS1274和ADS1234的区别是什么? 1. 好像ADS1234最大增益128,不知道在最大增益128的情况下,前段的桥式压力信号还能否继续放大后作为输入信号? 2. 另外如果对于
    发表于 01-02 08:29

    对于1位量化的Sigma-delta调制器来说,As和SNR和DR分别是什么关系

    最近在学习Sigma-deltaADC的理论,有些问题请教一下专家 1. 请问对于1位量化的Sigma-delta 调制器来说,As和SNR和DR分别是什么关系,不同论文得到的SNR、DR和标准
    发表于 01-02 08:04

    隔离式ADC和普通ADC的区别是什么?

    隔离式ADC和普通ADC的区别是什么? 普通ADC+光耦能否等同于隔离式ADC
    发表于 12-27 06:09

    深入解析Linux程序与进程

    关于某个数据集合的一次运行活动。作为系统进行资源分配和调度的基本单位,是操作系统结构的基础。 程序与进程关系 进程的状态 基础进程状态 创建状态:
    的头像 发表于 12-18 11:01 845次阅读
    深入解析Linux程序与<b class='flag-5'>进程</b>