程序(Program或Procedure,港台称之为程式)是一组用计算机语言编写的命令序列的集合。程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的「程序」就称之为进程。线程是系统分配处理器时间资源的基本单元。每启动一个程序,就至少启动了一个进程。

  进程(Process,台湾译作行程)是计算机中已运行程序的实体。程序本身只是指令的集合,进程才是程序(那些指令)的真正运行。进程本身不会运行,是线程的容器。线程不能单独执行,必须组成进程。一个程序至少有一个进程,一个进程至少有一个线程。

  线程(Thread,台湾称执行绪)是进程中某个单一顺序的控制流,指运行中的程序的调度单位。在单个程序中同时运行多个线程完成不同的工作,称为多线程。多线程主要是为了节约CPU时间。

  在任务管理器中查看进程和线程 
  线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源(线程的运行中需要使用计算机的内存资源和CPU),但它可与同属一个进程的其它线程共享进程所拥有的全部资源。通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。

------------------------------------------------------------------------------------

程序:一组指令的有效集合

进程:程序的执行就是进程。也可以把进程看成一个独立的程序,在内存中有其对应的代码空间和数据空间,一个进程所拥有的数据和代码只属于自己。进程是资源分配的基本单位,也是调度运行的基本单位。

线程:线程被人们认为是轻量级的进程,它是进程中单独运行的一路程序。换句话说,就是一个进程可以包含多个线程,并且至少有一个主线程,同时同一进程的线程共享该进程的代码和数据。于此同时,每一个线程又都有自己的堆栈,这些堆栈对于线程来说是私有的。线程是处理机调度的基本单位。

那为什么要引入线程呢?

1、便于调度

2、线程可以共享进程的数据和代码,从而比进程需要通过消息才能通信来得更加简单。启动和切换的速度也比进程快。

3、具有高并发性,可以启动多个线程执行同程序的不同部分。

4、充分利用处理器的功能。让每一个处理器上运行不同线程,从而实现应用程序的并发性。

程序和进程的区别

1、程序是静态的,它知识一组冰冷的指令的集合,不具有任何的运行意义。而进程是程序运行在数据集上的动态过程,进程是一个动态实体,它应创建而产生,应调度执行,应等待资源或者是事件而处于等待状态,应完成了任务而被撤销,它有自己的生命周期,它反应了程序在数据集上运行的全部动态过程。

2、进程和程序并不是一一对应的关系,相同的程序运行在不同的数据集上就是不同的进程。

3、进程还具有并发性和交往性,而程序却是封闭的。

进程和线程的区别

1、一个进程可以拥有多个线程,而一个线程同时只能被一个进程所拥有。

2、进程是资源分配的基本单位,线程是处理机调度的基本单位,所有的线程共享其所属进程的所有资源与代码。

3、线程执行过程之中很容易进行协作同步,而进程需要通过消息通信进行同步。

4、线程的划分尺度更小,并发性更高。

5、线程共享进程的数据的同时,有自己私有的的堆栈。

6、线程不能单独执行,但是每一个线程都有程序的入口、执行序列以及程序出口。它必须组成进程才能被执行。

转载于:https://blog.51cto.com/29498359/1826793

程序、进程与线程的关系相关推荐

  1. Linux--进程和计划任务管理 理论干货+实操(程序,进程,线程之间关系的详解,静态与动态查看进程方式,控制进程的 方式,一次性任务与周期性任务的设置)

    文章目录 前言 一:程序,进程,线程之间的关系 1.1:进程概述 1.2:应用程序,进程和线程的关系 1.2.1:程序和进程的关系 1.2.2:进程和线程的关系 二:查看进程 2.1:静态查看 ps命 ...

  2. 基本概念理解:程序、进程、线程及其关系

      大家好,我是爱编程的喵喵.双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中.从事机器学习以及相关的前后端开发工作.曾在阿里云.科大讯飞.CCF等比赛获得多次Top名次.现 ...

  3. 进程和线程的关系与区别是什么?如何创建多线程?

    单核CPU和多核CPU: 单核CPU:在一个时间单元内,只能执行一个线程的任务.是一种假的多线程.(单核CPU可以"挂起"一个线程,执行另一个线程,看起来像是多线程) 多核CPU: ...

  4. 进程与线程的关系简单介绍

    文章目录 1. 进程与线程的简单介绍 2. 进程 基本特点: 3. 线程 1. 进程与线程的简单介绍   什么是进程?打个比方,你的程序要执行,操作系统就会杷你的exe文件加载到内存中.那就生成一个进 ...

  5. linux+kill+进程和线程,什么是程序,进程和线程?三者之间有何关系?

    进程 进程与线程的历史 进程与线程之间的关系 重点 进程 和 线程的概念 进程和程序关系 cpu在执行程序时什么叫进程 swap 内存的缺页异常 大的异常 小的异常 内存映射mmap 内存泄露 tas ...

  6. 【Linux 内核】进程管理 ( 进程与操作系统 | 进程与程序 | 进程与线程 | 虚拟地址空间 )

    文章目录 一.进程与操作系统 二.进程与程序 三.进程与线程 四.虚拟地址空间 一.进程与操作系统 操作系统与硬件的关系 : 操作系统 使用 硬件 提供的资源 , 如 CPU , 内存 , 磁盘 , ...

  7. 进程和线程的关系与区别

    1.定义 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基 ...

  8. android中进程和线程的关系与区别

    什么是进程什么是线程 进程是指在系统中正在运行的一个应用程序:程序一旦运行就是进程 进程可以认为是程序执行时的一个实例.进程是系统进行资源分配的独立实体, 且每个进程拥有独立的地址空间.一个进程无法直 ...

  9. 简述进程与线程的关系

    一. 定义 进程:进程是能在系统中独立运行并作为资源分配的基本单位,是CPU分配资源的最小单位,它包括独立的地址空间,资源以及一至多个线程. 线程:线程是进程中的一个实体,是CPU调度的最小单位. 二 ...

最新文章

  1. android闪退比ios多,安卓和苹果多年使用后有什么区别?一个易卡顿,一个易闪退...
  2. java io在文件结尾持续添加内容
  3. ubuntu windows 终端清理、清空 屏幕命令 清屏
  4. Mybatis原理初探
  5. html 模板配置,模板文件配置
  6. tf 如何进行svd_Tensorflow快餐教程(6) - 矩阵分解
  7. 阿里云研究员叔同:云原生是企业数字创新的最短路径
  8. BugkuCTF-PWN题pwn7-repeater详细讲解多解法
  9. JavaScript学习笔记(四)--复杂数据类型Object
  10. java 最少使用(lru)置换算法_[内附完整源码和文档] 基于C#的可视化虚拟存储器管理(LUR算法)...
  11. docker 容器启动后立马退出的解决方法
  12. 树梅派输入法黑块问题
  13. everything is nothing
  14. 西瓜视频 iOS 播放器技术重构
  15. 基于深度学习模型(1D CNN)实现钓鱼网站检测
  16. shell学习笔记:变量篇
  17. 图像处理之LSB Matching Revisited论文复现
  18. 詹姆斯·西蒙斯-数学,常识和运气
  19. 利用计算机课堂导入的好处,多媒体教学的好处
  20. VS安装扩展很慢解决方案

热门文章

  1. Linux的奖励机制是啥意思,Linux能力(capability)机制的继承
  2. centos7 如何重启web服务_如何重启web服务器
  3. 为什么matlab用不成了,matlab2008 安装了不能用为什么?
  4. Mysql存储过程老是报错_mysql中看看这个存储过程老是报错,该如何处理
  5. 报表中判断字段中是否包含某字符串
  6. MCU加密技术分析(二)
  7. VB打开文本文件各种方法
  8. 打字方式异于常人,可能脑子有病丨AI研究
  9. Facebook悄悄参加星际AI大赛,然后输了 | 中国团队夺得第四
  10. Swift实践:使用CoreData存储多种数据类的通讯录