电子发烧友网 > 控制/MCU > 正文

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

2018年03月12日 08:48 次阅读

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

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

进程(有时被称为重量级进程)是程序的一次执行。每个进程都有自己的地址空间,内存,数据栈以及其它记录其运行轨迹的辅助数据。操作系

统管理在其上运行的所有进程,并为这些进程公平地分配时间。

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

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

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

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

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

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

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

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

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

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

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

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

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

技术专区

关注电子发烧友微信

有趣有料的资讯及技术干货

下载发烧友APP

打造属于您的人脉电子圈

关注发烧友课堂

锁定最新课程活动及技术直播
收藏 人收藏
分享:

评论

相关推荐

进程间与线程间的通信方式

进程间的通信则不同,它的数据空间的独立性决定了它的通信相对比较复杂,需要通过操作系统。以前进程间的通...

发表于 2018-04-09 15:58 89次阅读
进程间与线程间的通信方式

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

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

发表于 2018-04-04 09:33 75次阅读
进程和线程的关系与区别是什么

stm32 LCD12864 串口无显示

发表于 2018-04-03 23:41 284次阅读
stm32   LCD12864 串口无显示

Prim算法以及优化实现

最小生成树(Minimum Spanning Trees),简称MST。是图论中一个非常重要的概念。...

发表于 2018-03-31 10:32 392次阅读
Prim算法以及优化实现

FANUC系统操作编程报警号

FANUC报警号大全

发表于 2018-03-30 15:43 179次阅读
FANUC系统操作编程报警号

CPU与核心及进程和线程认识

所谓的4核8线程,4核指的是物理核心。通过超线程技术,用一个物理核模拟两个虚拟核,每个核两个线程,总...

发表于 2018-03-30 14:48 245次阅读
CPU与核心及进程和线程认识

李彦宏称中国人愿拿隐私换取个人方便

日前举行的中国发展高层论坛上,百度董事长兼CEO李彦宏表示,“中国人对隐私问题的态度更开放,也相对来...

发表于 2018-03-30 10:22 364次阅读
李彦宏称中国人愿拿隐私换取个人方便

怎样在 Linux 上安装程序?

如何在 Linux 上安装应用程序?因为有许多操作系统,这个问题不止有一个答案。应用程序可以可以来自...

发表于 2018-03-29 15:22 141次阅读
怎样在 Linux 上安装程序?

解决不重复序列的全排列问题的两个方法:递归和字典...

这篇文章主要介绍了解决不重复序列的全排列问题的两个方法:递归和字典序法。

发表于 2018-03-29 11:19 111次阅读
解决不重复序列的全排列问题的两个方法:递归和字典...

拷贝了一个Labview项目程序,依赖关系显示文件删除、移动或重命名,每次打开都要指定很多路径,求解决方案

发表于 2018-03-26 23:27 218次阅读
拷贝了一个Labview项目程序,依赖关系显示文件删除、移动或重命名,每次打开都要指定很多路径,求解决方案

有谁调试过 STC8A系列 驱动 max6675读取温度程序,读取的温度液晶显示不正常,显示0000,求解决办法???

发表于 2018-03-26 17:22 262次阅读
有谁调试过 STC8A系列 驱动 max6675读取温度程序,读取的温度液晶显示不正常,显示0000,求解决办法???

TLC5615输出锯齿波程序疑惑之处请教

发表于 2018-03-26 10:50 193次阅读
TLC5615输出锯齿波程序疑惑之处请教

学好PLC须掌握的三个典型程序实例

学好PLC须掌握的三个典型程序实例

发表于 2018-03-26 09:02 790次阅读
学好PLC须掌握的三个典型程序实例

求一份按下按键显示屏显示对应信息的程序 急!

发表于 2018-03-23 18:19 321次阅读
求一份按下按键显示屏显示对应信息的程序 急!

求简易风洞设计程序或基于PID算法控制直流电机与超声波模块结合

发表于 2018-03-23 16:17 203次阅读
求简易风洞设计程序或基于PID算法控制直流电机与超声波模块结合

线程、进程、程序的区别

发表于 2018-03-23 13:09 365次阅读
线程、进程、程序的区别

线程、进程、程序的区别

发表于 2018-03-23 13:09 365次阅读
线程、进程、程序的区别

线程、进程、程序的区别

发表于 2018-03-23 13:09 365次阅读
线程、进程、程序的区别

DAQ采集卡可以和labview程序进行绑定吗?

发表于 2018-03-22 21:31 285次阅读
DAQ采集卡可以和labview程序进行绑定吗?

高达600MHz主频的Cortex-M7 MCU

一颗强力的大脑是系统的灵魂,i.MX RT系列高实时微处理器,集成Cortex-M7内核,最高600...

发表于 2018-03-17 10:53 758次阅读
高达600MHz主频的Cortex-M7 MCU

PDF解析程序架构设计详细

在做大数据的时候,首先第一步就是要解决数据的来源,我们采用的设计方案就是使用Python来从一些政府...

发表于 2018-03-17 09:13 242次阅读
PDF解析程序架构设计详细

线程与进程的概念与区别

当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CP...

发表于 2018-03-16 15:30 411次阅读
线程与进程的概念与区别

PIC12C508读写93LC46范例程式

用HI-TECH C写的使用PIC12C508读写93LC4。 static volatile b...

发表于 2018-03-14 13:52 59次阅读
PIC12C508读写93LC46范例程式

多线程服务器编程模型:如何正确使用mutex 和...

本文对多线程服务器的常用编程模型进行了一个详细的解读,本文中的多线程服务器是运行在 Linux 操作...

发表于 2018-02-19 08:29 450次阅读
多线程服务器编程模型:如何正确使用mutex 和...

CPU的核心数、线程数的关系和区别

核心又称为内核,是CPU最重要的组成部分。CPU中心那块隆起的芯片就是核心,是由单晶硅以一定的生产工...

发表于 2018-02-12 10:42 967次阅读
CPU的核心数、线程数的关系和区别

cpu线程多有什么好处

中央处理器主要包括运算器和高速缓冲存储器及实现它们之间联系的数据、控制及状态的总线。它与内部存储器和...

发表于 2018-02-12 10:30 438次阅读
cpu线程多有什么好处

分析C语言到底需要掌握哪些知识以及怎样去掌握

C语言的精髓点在哪? 学到多少东西才能够达到做项目的标准?学习的时候需要注意哪些细节点?疑问太多以至...

发表于 2018-01-29 10:16 742次阅读
分析C语言到底需要掌握哪些知识以及怎样去掌握

定时器刷新详解(程序介绍)

本文为大家介绍只刷新一次和根据间隔时间一直刷新的定时刷新程序详解。

发表于 2018-01-26 16:09 133次阅读
定时器刷新详解(程序介绍)

基于Linux进程管理的详细剖析

上一篇,我们讲到了Linux内核开发和应用程序开发,今天我们来讲讲Linux重点部分Linux的进程...

发表于 2018-01-26 11:24 613次阅读
基于Linux进程管理的详细剖析

介绍初次接触ARM开发应该从4个方面来理清开发思...

由于涉及编程,学习ARM单片机系统对于从事电子电路的设计者来说是有些困难的,学习知识不难,难的是理清...

发表于 2018-01-16 14:32 1082次阅读
介绍初次接触ARM开发应该从4个方面来理清开发思...

rs232介绍_rs232串口通信程序

本文为大家介绍rs232串口通信程序。

发表于 2018-01-14 11:38 494次阅读
rs232介绍_rs232串口通信程序

调试Python程序代码的几种方法总结

本文主要介绍了调试Python程序代码的几种方法总结。第一种方法简单直接粗暴有效,就是用print把...

发表于 2018-01-14 11:22 279次阅读
调试Python程序代码的几种方法总结

单片机怎么烧录程序_单片机烧录程序步骤说明

单片机烧录程序并不复杂,只需几个步骤就能搞定。

发表于 2018-01-09 16:33 795次阅读
单片机怎么烧录程序_单片机烧录程序步骤说明

AT24C512C芯片介绍_AT24C512C芯...

AT24C512是Atmel公司生产的64KB串行电可擦的可编程存储器,内部有512页,每一页为12...

发表于 2018-01-09 16:21 405次阅读
AT24C512C芯片介绍_AT24C512C芯...

AT24C256介绍_AT24C256烧录的完整...

本文为大家带来AT24C256烧录的完整程序。

发表于 2018-01-09 16:03 289次阅读
AT24C256介绍_AT24C256烧录的完整...

单片机之IIC--AT24C256的读写程序

一个通用的24C01-24C256共9种EEPROM的字节读写操作程序,此程序有五个入口条件,分别为...

发表于 2018-01-09 15:35 402次阅读
单片机之IIC--AT24C256的读写程序

算法与程序的区别关系_算法与程序设计知识点总结

 算法+数据结构=应用程序。算法是解决问题的步骤;程序是算法的代码实现算法要依靠程序来完成功能;程序...

发表于 2018-01-03 16:26 1034次阅读
算法与程序的区别关系_算法与程序设计知识点总结

spi从机程序设计_spi从机程序代码详细介绍

本文介绍STM32F407的SPI主从机通信程序和基于计数器的spi从机程序这两种spi从机程序

发表于 2017-12-29 15:05 336次阅读
 spi从机程序设计_spi从机程序代码详细介绍

hadoop优缺点分析

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情...

发表于 2017-12-25 15:28 274次阅读
hadoop优缺点分析

mfc线程简单介绍

 摘要:本文主要以mfc线程为主题展开的概述,详细介绍了线程,线程与函数以及实例来说明,下面我们一起...

发表于 2017-12-08 15:05 155次阅读
mfc线程简单介绍

线程的实现方式,四线程和八线程的区别介绍

摘要:线程是程序执行流的最小单元。四线程和八线程是线程的两种表现形式,下面来看看它们之间的区别以及线...

发表于 2017-12-08 14:31 277次阅读
线程的实现方式,四线程和八线程的区别介绍

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

摘要:进程和线程都是计算里的两项执行活动,各有特色和优势。下面就来介绍线程和进程之间的区别联系以及通...

发表于 2017-12-08 14:12 367次阅读
线程和进程的区别和联系,线程和进程通信方式

理解Java中字符流与字节流的区别

JDK称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开...

发表于 2017-12-04 10:39 196次阅读
理解Java中字符流与字节流的区别

8位crc校验分析及程序

CRC 中的生成多项式,是有很多标准的。其统一的规律是:最高位、最低位都为1。8位CRC校验通常用的...

发表于 2017-12-04 10:28 287次阅读
8位crc校验分析及程序

几种嵌入式实时操作系统的分析与比较

嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM...

发表于 2017-12-01 17:35 379次阅读
几种嵌入式实时操作系统的分析与比较

hashmap线程不安全的表现及原因分析

基于哈希表的Map接口的实现。此实现提供所有可选的映射操作,并允许使用null值和null键。(除了...

发表于 2017-12-01 14:43 171次阅读
hashmap线程不安全的表现及原因分析

深入研究Servlet线程安全性问题

Servlet是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端...

发表于 2017-12-01 14:03 65次阅读
深入研究Servlet线程安全性问题

解决线程安全问题技巧汇总

线程,有时被称为轻量级进程,是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),...

发表于 2017-12-01 13:42 179次阅读
解决线程安全问题技巧汇总

python多线程与多进程的区别

Python的设计哲学是“优雅”、“明确”、“简单”。因此,Perl语言中“总是有多种方法来做同一件...

发表于 2017-12-01 09:04 434次阅读
python多线程与多进程的区别

WPF 应用程序的开始两个线程介绍

开始着手写这个WPF系列,这里的一站式,就是力争在每一个点上能把它讲透,当然,做不到那么尽善尽美,如...

发表于 2017-11-30 11:02 59次阅读
WPF 应用程序的开始两个线程介绍

P2106 机密谍报(电脑菜鸟体验做高手心理)

HY 非常喜欢和 GJQ 闲聊,而其他人等都还奋斗在 OI 的道路上,为了不打扰同学,他们交流统一用...

发表于 2017-11-25 12:54 113次阅读
P2106 机密谍报(电脑菜鸟体验做高手心理)

JavaScript中十个内置对象列表及其程序详...

js必备的内置对象,内置对象是ECMAscript标准以及定义好的,由浏览器厂商已经实现的标准对象 ...

发表于 2017-11-25 10:36 158次阅读
JavaScript中十个内置对象列表及其程序详...

Xilinx设备的驱动程序

Xilinx为所有设备都提供了standalone模式的驱动程序。Xilinx SDK会根据硬件系统...

发表于 2017-11-18 10:51 307次阅读
Xilinx设备的驱动程序

单片机指令系统与子程序调用的操作方法

MCS-51单片机有丰富的位操作指令,可以把大量的硬件组合逻辑用软件来代替,这样可以方便地应用于各种...

发表于 2017-11-16 10:58 467次阅读
单片机指令系统与子程序调用的操作方法

nrf905收发程序

nRF905无线芯片是由挪威NORDIC公司出品的低于1GHz无线数传芯片,主要工作于433MHz、...

发表于 2017-11-07 11:08 195次阅读
nrf905收发程序

CS1237驱动程序参考代码

CS1237是一款高精度、低功耗模数转换芯片,一路差分输入通道,内置温度传感器和高精度振荡器。

发表于 2017-11-06 11:25 533次阅读
CS1237驱动程序参考代码

队列ADT,实现与使用接口

周立功教授数年之心血之作《程序设计与数据结构》以及《面向AMetal框架与接口的编程(上)》,电子版...

发表于 2017-09-25 16:39 2879次阅读
队列ADT,实现与使用接口

周立功阐释高效的双向链表如何用

实际上循环链表,无论是头结点、尾结点还是普通结点,其本质上都是一样的。

发表于 2017-09-25 14:14 2754次阅读
周立功阐释高效的双向链表如何用

微信小程序正式上线,创业者开始拔足狂奔!

就在今日凌晨,微信小程序正式上线,这对很多人来说,或许是一个新的机会,尽管还不清楚前方的机会与坑都有...

发表于 2017-01-10 01:13 874次阅读
微信小程序正式上线,创业者开始拔足狂奔!

微信之父张小龙说要:取消今年春节“摇一摇”红包

在今天的腾讯大学微信公开课Pro版演讲当中,腾讯公司高级副总裁、微信之父张小龙表示,今年春节不会有微...

发表于 2016-12-29 18:53 3971次阅读
微信之父张小龙说要:取消今年春节“摇一摇”红包

3D CAD模型程序发展里程碑:更完善、更流畅!

RS Components公司于日前发布其全新的专业3D-CAD子网站,使得用户能够更加方便快捷地接...

发表于 2013-01-22 09:03 423次阅读
3D CAD模型程序发展里程碑:更完善、更流畅!

c语言超经典矩阵式键盘的接法,流程图和扫描程序

列线输入端P1.0~P1.3通过电阻接正电源,行线P1.4~P1.7所接的单片机的I/O口作为输出端...

发表于 2012-10-14 09:19 23529次阅读
c语言超经典矩阵式键盘的接法,流程图和扫描程序

dsPIC33F单片机的程序升级探讨

本文利用dsPIC33F单片机运行时的自编程(Run-Time Serf-Programming,R...

发表于 2011-09-16 13:50 2990次阅读
dsPIC33F单片机的程序升级探讨

BLOB启动流程与Bootloader程序可移植...

在 嵌入式系统 应用中,通过引导程序(Bootloader)可以初始化硬件设备、建立内存空间的映射图...

发表于 2011-08-29 10:21 934次阅读
BLOB启动流程与Bootloader程序可移植...

S7-200简单模拟量编程程序

西门子S7-200简单模拟量编程范例,西门子S7-200简单模拟量编程范例,TITLE=//子程序1...

发表于 2011-06-21 12:02 5929次阅读
S7-200简单模拟量编程程序

如何为程序代码加上行号

若需要将程序代码放进词交报告或做文件时,或许我们会想将程序代码加上行号方便讲解,如同博客园显示程序代...

发表于 2011-05-10 08:17 883次阅读
如何为程序代码加上行号

改变文件和程序的关联方法

在Windows中打开一个文件时,系统会自动调用相应的程序来打开它。但有时我们不想用这个程序来打开这...

发表于 2011-01-29 18:06 1231次阅读
改变文件和程序的关联方法

MAX197的带液晶显示源程序

MAX197的带液晶显示C语言源程序代码。

发表于 2011-01-17 00:12 3107次阅读
MAX197的带液晶显示源程序

利用模型设计测试程序开发智能设备方案

有谁会想到,为了去一趟杂货店,我们的汽车需要多少电子控制单元(ECU)不停地运作?又有谁会想到,今天...

发表于 2010-08-31 15:32 298次阅读
利用模型设计测试程序开发智能设备方案

PIC单片机程序设计解析

    PIC单片机采用精简指令集,例如对于PIC16F716单片机,...

发表于 2010-06-08 08:33 548次阅读
PIC单片机程序设计解析

单片机小程序初步入门

单片机小程序初步入门 上一次我们的程序实在是没什么用,要灯亮还要重写一下片子,下面我们要让灯持续地...

发表于 2010-03-11 09:16 526次阅读
单片机小程序初步入门

程序控制电压源及其电磁兼容性设计

程序控制电压源及其电磁兼容性设计 摘要:介绍了几种典型的程序控制电压源及其电磁兼...

发表于 2009-07-16 09:18 138次阅读
程序控制电压源及其电磁兼容性设计

利用空闲ROM防止程序飞跑

利用空闲ROM防止程序飞跑1、 全部填02H,相当于“LJMP 0202H”,作个软件看门狗。2、 ...

发表于 2009-04-28 11:42 292次阅读
利用空闲ROM防止程序飞跑

多线程技术在数据实时采集分析中的应用

多线程技术在数据实时采集分析中的应用 数字接口设备是实现标准422串行总线到自定义串行总线转换的专...

发表于 2009-04-22 19:59 275次阅读
多线程技术在数据实时采集分析中的应用

ht1621 c程序

ht1621 c程序 Ht1621中文资料  

发表于 2008-07-07 17:41 1778次阅读
ht1621 c程序

msp430显示程序-msp430数码管显示程序...

msp430+数码管显示程序 #include <MSP430x16x.h>void ...

发表于 2008-04-14 12:41 1420次阅读
msp430显示程序-msp430数码管显示程序...

单片机简谱程序

单片机简谱程序 #i nclude #i nclude "SoundPlay.h"  ...

发表于 2008-01-11 23:24 1088次阅读
单片机简谱程序

遥控器程序

遥控解码的原理:我们知道遥控是采用38KHZ的脉冲通过红外发光二极管调制发送出去的 。我们的主 目的...

发表于 2008-01-11 23:23 826次阅读
遥控器程序

数码管显示矩阵键盘扫描程序

数码管显示矩阵键盘扫描程序  /*矩阵键盘扫描出键值,在数码管上显示出来       P0口接数码...

发表于 2008-01-11 19:14 1250次阅读
数码管显示矩阵键盘扫描程序

矩阵键盘扫描程序

矩阵键盘扫描程序 按键扫描(线反转)//-----------------------------...

发表于 2008-01-11 19:11 5341次阅读
矩阵键盘扫描程序

CD4094驱动程序

CD4094驱动程序 CD4094用的比较广...可以用在静态显示...串口转并口...驱动数码管...

发表于 2007-11-08 10:04 2748次阅读
CD4094驱动程序

18b20 C程序

18b20 C程序 //将DQ与Vcc之间接入4.7K上拉电阻#include "reg52.h"...

发表于 2007-11-08 09:35 3505次阅读
18b20 C程序