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

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

3天内不再提示

线程、进程、程序三者之间的区别与联系

电子工程技术 来源:YXQ 2019-08-12 17:35 次阅读

任务是代码运行的一个映象,从系统的角度看,任务是竞争系统资源的最小运行单元。任务可以使用或等待CPU、I/O设备及内存空间等系统资源,并独立于其它任务,与它们一起并发运行(宏观上如此)。VxWorks内核使任务能快速共享系统的绝大部分资源。

在VxWorks6.4中,进程是指Rtp,进程包含任务,任务是调度的最小单元。

进程(有时被称为重量级进程)是程序的一次执行。每个进程都有自己的地址空间,内存,数据栈以及其它记录其运行轨迹的辅助数据。操作系统管理在其上运行的所有进程,并为这些进程公平地分配时间。

不过各个进程有自己的内存空间,数据栈等,所以只能使用进程间通讯(IPC),而不能直接共享信息

线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程也有就绪、阻塞和运行三种基本状态。每一个程序都至少有一个线程,那就是程序本身。

线程是程序中一个单一的顺序控制流程。在单个程序中同时运行多个线程完成不同的工作,称为多线程。

线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文。多线程主要是为了节约CPU时间,发挥利用,根据具体情况而定。线程的运行中需要使用计算机的内存资源和CPU。

通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度,从而显著提高系统资源的利用率和吞吐量。

因而近年来推出的通用操作系统都引入了线程,以便进一步提高系统的并发性,并把它视为现代操作系统的一个重要指标。

线程与进程的区别可以归纳为以下几点:

1)地址空间和其它资源(如打开文件):进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。

2)通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。

3)调度和切换:线程上下文切换比进程上下文切换要快得多。

4)在多线程OS中,进程不是一个可执行的实体。

程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。为实现预期目的而进行操作的一系列语句和指令。一般分为系统程序和应用程序两大类。计算机中的程序在港澳台地区称为程式。程序就是为使电子计算机执行一个或多个操作,或执行某一任务,按序设计的计算机指令的集合。

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

    关注

    116

    文章

    3773

    浏览量

    80831
  • 线程
    +关注

    关注

    0

    文章

    504

    浏览量

    19646
  • 进程
    +关注

    关注

    0

    文章

    201

    浏览量

    13947

原文标题:线程,进程,程序的区别

文章出处:【微信号:EngicoolArabic,微信公众号:电子工程技术】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    进程线程区别

    是资源分配和拥有的单位,同一个进程内的线程共享进程的资源(3)线程是处理器调度的基本单位,但进程不是.4)二
    发表于 12-12 09:28

    DAQmx VISA ,生产与消费模式这三者之间的作用是什么,三者之间有什么联系

    DAQmx VISA ,生产与消费模式这三者之间的作用是什么,三者之间有什么
    发表于 09-14 21:53

    线程进程程序区别

    可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程也有就绪、阻塞和运行种基本状态。每一个程序都至少有一个
    发表于 03-23 13:09

    进程线程区别联系介绍

    之间可以并发执行。由于线程之间的相互制约,致使线程在运行中也呈 现出间断性。相应地,线程也同样有就绪、阻塞和执行种基本状态,有的系统中
    发表于 07-04 00:18

    请问这三者之间有什么联系

    工程师朋友,你好:我是新手,想问升压型DC-DC芯片的开关电流Isw、输出电流Iout和芯片的耗电,三者之间有什么联系
    发表于 07-04 08:33

    LED,LED背光,OLED三者之间究竟有怎样的区别联系呢?

    什么是LED显示器?什么是LED背光显示器?LED,LED背光,OLED三者之间究竟有怎样的区别联系呢?
    发表于 06-03 06:14

    UART SPI IIC的详解及三者区别联系

    详情参考文章01详情参考文章02UART SPI IIC的详解及三者区别联系Arduino主从机之间的i2c通信I2C总线定义:I2C(‘intel’ -Integrated Ci
    发表于 12-13 07:27

    线程进程区别联系,线程进程通信方式

    摘要:进程线程都是计算里的两项执行活动,各有特色和优势。下面就来介绍线程进程之间区别联系
    发表于 12-08 14:12 1.2w次阅读

    ArcGIS Runtime和ArcGIS Engine、ArcGIS Server的比较_arcgis desktop、arcgis engine和arcgis server三者之间有什么区别

    本文将详细介绍ArcGIS Runtime 和ArcGIS Engine、ArcGIS Server的之间关系比较。以及arcgis desktop、arcgis engine和arcgis server三者之间
    发表于 01-16 11:48 5634次阅读

    一文读懂线程进程程序之间的不同

    线程进程区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个
    发表于 03-12 08:48 1320次阅读
    一文读懂<b class='flag-5'>线程</b>、<b class='flag-5'>进程</b>、<b class='flag-5'>程序</b><b class='flag-5'>之间</b>的不同

    RGV、AGV、IGV之间究竟有何区别联系及概念?

    对于RGV、AGV、IGV这三者之间区别联系,很多人没有清晰的概念。RGV、AGV、IGV之间究竟有何
    的头像 发表于 07-10 15:07 4.1w次阅读

    谈谈PCBA、SMT、PCB三者之间区别联系

    很多刚开始接触电子行业的人,常常会被PCBA、SMT、PCB这个给弄混,很难分清楚它们之间区别联系,接下来众焱电子就通过通俗易懂的语言来谈谈PCBA、SMT、PCB
    的头像 发表于 03-19 09:31 3w次阅读

    进程线程分别是什么,它们的区别是什么

    程和线程区别是什么?有什么关系?相信大家对于进程都很熟悉了吧,而线程相对于进程而言,是一个更加接近于执行体的概念,为了让大家更好的了解
    发表于 03-24 17:26 9369次阅读
    <b class='flag-5'>进程</b>和<b class='flag-5'>线程</b>分别是什么,它们的<b class='flag-5'>区别</b>是什么

    程序进程线程区别

    什么是进程 1、进程线程区别 进程是指正在运行的程序,它拥有独立的内存空间和系统资源,不同
    的头像 发表于 06-22 11:39 642次阅读
    <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 682次阅读