进程

进程是具有一定功能的程序在一个数据集合上的运行过程,它是系统进行资源分配和调度管理的一个可并发执行的基本单位。

是执行中一段程序,即一旦程序被载入到内存中并准备执行,它就是一个进程。

进程的基本特性

a、动态性:进程的实质是程序的一次执行过程,它由系统创建而产生,能够被调度而执行,因申请的共享资源被其他进程占用而暂停,完成任务后被撤销。动态性是进程最重要的特性。

b、独立性:系统内多个进程可以并发执行,引入进程的目的也是为了使系统某个程序能够和其他进程并发执行。

c、异步性:进程由于共享资源和协同合作,因此产生了相互制约的关系,进程实体通过进程管理以异步的方式使用处理器和其他资源,系统必须统一调度,依据一定的算法来保证各个进程能够协同运行并共享处理器和其他资源。

d、结构特性:系统中运行的进程实体通常由程序、数据和一个PCB(进程控制块)组成。

线程

单个进程中执行中每个任务就是一个线程。线程是进程中执行运算的最小单位。线程是进程的一个执行流,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。一个进程由几个线程组成(拥有很多相对独立的执行流的用户程序共享应用程序的大部分数据结构),线程与同属一个进程的其他的线程共享进程所拥有的全部资源。

线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),一个线程可以创建和撤销另一个线程。

区别与联系

(1) 划分尺度:线程更小,所以多线程程序并发性更高;

(2) 资源分配&处理器调度:进程是资源分配的基本单位,线程是处理器调度的基本单位。  

(3) 地址空间:进程拥有独立的地址空间;线程没有独立的地址空间,同一进程内多个线程共享其资源;

(4) 执行:每个线程都有一个程序运行的入口、顺序执行序列和程序的出口,但线程不能单独执行,必须组成进程,一个进程至少有一个主线程。简而言之,一个程序至少有一个进程,一个进程至少有一个线程。

(5)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。线程是操作系统可识别的最小执行和调度单位。

(6)资源分配给进程,同一进程的所有线程共享该进程的所有资源。 同一进程中的多个线程共享代码段(代码和常量),数据段(全局变量和静态变量),扩展段(堆存储)。但是每个线程拥有自己的栈段,栈段又叫运行时段,用来存放所有局部变量和临时变量。

(7)处理机分给线程,即真正在处理机上运行的是线程。

(8)线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。

  (9) 一个进程可以有多个线程,但至少有一个线程;而一个线程只能在一个进程的地址空间内活动。

  (10)资源分配给进程,同一个进程的所有线程共享该进程所有资源。

  (11)CPU分配给线程,即真正在处理器运行的是线程。

线程和进程的各自特点和区别相关推荐

  1. Python中的线程、进程、协程以及区别

    进程,是执行中的计算机程序.也就是说,每个代码在执行的时候,首先本身即是一个进程.一个进程具有:就绪,运行,中断,僵死,结束等状态(不同操作系统不一样). 运行中每个进程都拥有自己的地址空间.内存.数 ...

  2. 线程与进程之间的关系和区别

    线程共享的环境包括:进程代码段,进程的公有数据(利用这些数据,线程很容易实现相互间的通讯),进程打开的文件描述符,信号的处理器进程的当前目录和进程用户ID与进程组ID. 进程拥有这许多共性的同时,还拥 ...

  3. 线程 、进程、协程 三者区别

    从计算机硬件角度: 计算机的核心是CPU,承担了所有的计算任务. 一个CPU,在一个时间切片里只能运行一个程序. 从操作系统的角度: 进程和线程,都是一种CPU的执行单元. 进程:表示一个程序的上下文 ...

  4. 对线程与进程的区别以及对多线程并发的理解

    一.线程与进程的区别 先简单说说线程与进程的概念: (1)进程是指一个内存中运行的应用程序,比如在Windows系统中,一个运行的exe就是一个进程. (2)线程是指进程中的一个执行流程. 区别: 一 ...

  5. 为什么校招面试中总被问“线程与进程的区别”?我该如何回答?

    作者 | 宇宙之一粟 责编 | 徐威龙 出品 | AI 科技大本营(rgznai100) 进程与线程?(Process vs. Thread?) 面试官(正襟危坐中):给我说说"线程&quo ...

  6. 2012-5-3 线程和进程的区别

    进程和线程的区别 http://www.cnblogs.com/lmule/archive/2010/08/18/1802774.html 简而言之,一个程序至少有一个进程,一个进程至少有一个线程. ...

  7. 线程、进程、程序区别

    线程和进程最根本的区别在于线程是调度和执行的单位,而进程是资源分配的单位:线程是进程的一部分,所以线程又被成为轻量级进程:一个没有线程的进程看做是单线程的:线程只能共享它所属进程的资源. 程序是静态的 ...

  8. 简单了解线程和进程、多进程和多线程、并发和并行的区别

    一:线程与进程 1.概念 线程:是程序执行流的最小单元,是系统独立调度和分配CPU(独立运行)的基本单位. 进程:是资源分配的基本单位.一个进程包括多个线程. 2.区别: 1.线程与资源分配无关,它属 ...

  9. Python | 面试必问,线程与进程的区别,Python中如何创建多线程?

    其实关于元类还有很多种用法,比如说如何在元类当中设置参数啦,以及一些规约的用法等等.只不过这些用法比较小众,使用频率非常低,所以我们 不过多阐述 了,可以在用到的时候再去详细了解.我想只要大家理解了元 ...

最新文章

  1. 卷积神经网络的一些细节
  2. 视频“双录”全新发布,助力金融业务办理高效合规
  3. Linux(centos7)安装nginx并配置代理
  4. SpringCloud系列十三:Feign对继承、压缩、日志的支持以及构造多参数请求
  5. SLAM 论文阅读和分类整理
  6. 【PAT】2020年春季考试划水准备贴
  7. 360屏保壁纸android,“如何删除屏保和壁纸”的解决方案
  8. mac safari无法打开网页_safari无法打开网页是什么原因?mac上的Safari浏览器打不开网页怎么办?...
  9. (CVPR-2021)具有深度通用线性嵌入的跨视角步态识别
  10. Light-sleep 模式下的电流功耗测试及特性(使用 Wi-Fi)
  11. DP(最长上升子序列)——腾讯校招题:逛街
  12. Ubuntu20.4系统下安装kvm并创建虚拟机
  13. 【转载】犀利哥:无法犀利的人生
  14. 孙振耀给职场人士的几个经典
  15. 图像预训练模型的起源解说和使用示例
  16. 帝都计算机谱子,天谕手游你给我所有乐谱代码是什么-天谕手游你给我所有乐谱代码分享_快吧手游...
  17. 数据挖掘软件SPSS Clementine 12安装教程
  18. 赚钱宝 mysql_基于35DIR完善版网站分类目录源码 适合行业/个人网站目录
  19. 中小型企业网网络搭建ensp模拟
  20. 2020-05-13 工作中英语单词积累

热门文章

  1. 76 尹淮 喜酒過量
  2. Web3 游戏中的创造者经济:从游戏到平台,用户生成内容的挑战
  3. 什么是服务熔断?什么是服务降级?区别是什么?
  4. CentOS下安装和使用Mycat实现分布式数据库
  5. 对2b、2c账号体系的思考
  6. 【新邮件】叮!你的美通社日历已Ready!
  7. html span字体旋转,几种常见的文字排列方向代码(倒向、竖向和旋转)
  8. 程序报错 could not convert variant of type (string) into type (double)
  9. Log4j2远程命令执行(CVE-2021-44228)复现
  10. Nginx 反向代理斜杠问题--代理的8种情况