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

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

3天内不再提示

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

Dbwd_Imgtec 来源:未知 作者:胡薇 2018-04-04 09:33 次阅读

1定义

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

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

2关系

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

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

3区别

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

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

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

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

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

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

4优缺点

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

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

    关注

    0

    文章

    503

    浏览量

    19627
  • 进程
    +关注

    关注

    0

    文章

    201

    浏览量

    13936

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

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

收藏 人收藏

    评论

    相关推荐

    Python中多线程和多进程区别

    Python作为一种高级编程语言,提供了多种并发编程的方式,其中多线程与多进程是最常见的两种方式之一。在本文中,我们将探讨Python中多线程与多进程的概念、
    的头像 发表于 10-23 11:48 195次阅读
    Python中多<b class='flag-5'>线程</b>和多<b class='flag-5'>进程</b>的<b class='flag-5'>区别</b>

    CPU线程和程序线程区别

    CPU的线程与程序的线程在概念、作用、实现方式以及性能影响等方面存在显著差异。以下是对两者区别的详细阐述,旨在深入探讨这一技术话题。
    的头像 发表于 09-02 11:18 642次阅读

    一句话让你理解线程进程

    今天给大家分享一下线程进程,主要包含以下几部分内容:一句话说明线程进程操作系统为什么需要进程为什么要引入
    的头像 发表于 06-04 08:04 997次阅读
    一句话让你理解<b class='flag-5'>线程</b>和<b class='flag-5'>进程</b>

    嵌入式系统中的线程进程与任务概念与区别

    每个线程与主程序共用地址空间,受限于2GB地址空间; 2)线程之间的同步和加锁控制比较麻烦;一个线程的崩溃可能影响到整个程序的稳定性
    发表于 03-04 15:03 1045次阅读
    嵌入式系统中的<b class='flag-5'>线程</b>、<b class='flag-5'>进程</b>与任务概念与<b class='flag-5'>区别</b>

    线程是什么的基本单位 进程线程的本质区别

    的代码、数据以及用于执行这些代码的上下文信息。一个进程可以由一个或多个线程组成,从而并发执行多个任务。 本质区别: 资源拥有方式:进程是资源分配的基本单位,每个
    的头像 发表于 02-02 16:30 807次阅读

    线程进程、多线程、多进程和多任务之间有何关系

    进程是程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集。从内核的观点看,进程的目的就是担当分配系统资源(CPU时间、内存等)的基本单位。
    的头像 发表于 01-11 13:39 327次阅读
    <b class='flag-5'>线程</b>、<b class='flag-5'>进程</b>、多<b class='flag-5'>线程</b>、多<b class='flag-5'>进程</b>和多任务之间有何<b class='flag-5'>关系</b>?

    mcu线程进程区别是什么

    MCU线程进程是嵌入式系统中常见的并行执行的概念,它们之间有许多区别,包括线程进程的定义、资源管理、通信机制、执行方式等等。下面将详细介
    的头像 发表于 01-04 10:45 653次阅读

    你还是分不清多进程和多线程吗?一文搞懂!

    你还是分不清多进程和多线程吗?一文搞懂! 多进程和多线程是并发编程中常见的两个概念,它们都可以用于提高程序的性能和效率。但是它们的实现方式和使用场景略有不同。 1. 多
    的头像 发表于 12-19 16:07 510次阅读

    进程线程的概念及其区别

    今天浩道跟大家分享一篇关于进程线程之间关联的硬核干货,看看大神如何通过通俗易懂的图文,让大家更加深刻理解进程线程区别
    的头像 发表于 11-21 10:50 847次阅读
    <b class='flag-5'>进程</b>和<b class='flag-5'>线程</b>的概念及其<b class='flag-5'>区别</b>

    线程进程区别是什么?进程状态之间如何相互转化?

    比如,这位同学字节面经,全程基本上就是八股文的拷打,范围就是操作系统、网络协议、mysql、redis、编程语言、算法、场景题。
    的头像 发表于 11-21 10:43 826次阅读
    <b class='flag-5'>线程</b>和<b class='flag-5'>进程</b>的<b class='flag-5'>区别是</b>什么?<b class='flag-5'>进程</b>状态之间如何相互转化?

    进程线程区别

    1.什么是进程?为什么要有进程进程有一个相当精简的解释:进程是对操作系统上正在运行程序的一个抽象。 这个概念确实挺抽象,仔细想想却也挺精准。 我们平常使用计算机,都会在同一时间做许
    的头像 发表于 11-11 16:46 719次阅读
    <b class='flag-5'>进程</b>和<b class='flag-5'>线程</b>的<b class='flag-5'>区别</b>

    socket、端口、进程关系

    特定的TCP端口。 而 socket 呢,是网络编程中的概念,对TCP/IP协议进行了抽象和实现,并为应用层提供接口。这里的应用A,可以是FTP应用,它属于用户进程,通过socket与内核中的网络协议栈进行交互。 socket 是核心,是枢纽,是进程与网络建立
    的头像 发表于 11-10 15:02 905次阅读
    socket、端口、<b class='flag-5'>进程</b>的<b class='flag-5'>关系</b>

    Linux系统上多线程和多进程的运行效率

    关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考试基本上够了,但如果在工作中遇到类似的选择问题,那就没有这么简单了,选
    的头像 发表于 11-10 10:54 1272次阅读
    Linux系统上多<b class='flag-5'>线程</b>和多<b class='flag-5'>进程</b>的运行效率

    RTOS中的线程进程和协程详解

    看到有小伙伴在讨论【RTOS任务属于线程还是进程】的话题,这里就来分析一下OS中的线程进程和协程的这几个概念,同时一起看看RTOS中的任务到底属于哪一种。
    的头像 发表于 11-09 12:36 1766次阅读
    RTOS中的<b class='flag-5'>线程</b>、<b class='flag-5'>进程</b>和协程详解

    关于Python多进程和多线程详解

    进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。关于多进程和多线程,教科书上最经典的一句话是“进程
    的头像 发表于 11-06 14:46 782次阅读
    关于Python多<b class='flag-5'>进程</b>和多<b class='flag-5'>线程</b>详解