线程与进程的比较如下:

1)进程是资源(包括内存、打开的文件等)分配的单位,线程是 CPU 调度的单位;

2)进程拥有一个完整的资源平台,而线程只独享必不可少的资源,如寄存器和栈;

3)线程同样具有就绪、阻塞、执行三种基本状态,同样具有状态之间的转换关系;

4)线程能减少并发执行的时间和空间开销;

对于,线程相比进程能减少开销,体现在:

1)线程的创建时间比进程快,因为进程在创建的过程中,还需要资源管理信息,比如内存管理信息、文件管理信息,而线程在创建的过程中,不会涉及这些资源管理信息,而是共享它们;

2)线程的终止时间比进程快,因为线程释放的资源相比进程少很多;

3)同一个进程内的线程切换比进程切换快,因为线程具有相同的地址空间(虚拟内存共享),这意味着同一个进程的线程都具有同一个页表,那么在切换的时候不需要切换页表。而对于进程之间的切换,切换的时候要把页表给切换掉,而页表的切换过程开销是比较大的;

4)由于同一进程的各线程间共享内存和文件资源,那么在线程之间数据传递的时候,就不需要经过内核了,这就使得线程之间的数据交互效率更高了;

所以,线程比进程不管是时间效率,还是空间效率都要高。

c++——进程与线程的区别相关推荐

  1. Linux进程与线程的区别 详细总结(面试经验总结)

    首先,简要了解一下进程和线程.对于操作系统而言,进程是核心之核心,整个现代操作系统的根本,就是以进程为单位在执行任务.系统的管理架构也是基于进程层面的.在按下电源键之后,计算机就开始了复杂的启动过程, ...

  2. 进程和线程的区别?什么时候用进程?什么时候用线程?----看到好的复制到自己的园子里哈哈...

    进程和线程的区别?什么时候用进程?什么时候用线程? 答:首先得知道什么是进程什么是线程? 我的理解是进程是指在系统中正在运行的一个应用程序:程序一旦运行就是进程,或者更专业化来说:进程是指程序执行时的 ...

  3. Linux进程与线程的区别

    2019独角兽企业重金招聘Python工程师标准>>> Linux进程与线程的区别 cnyinlinux 本文较长,耐心阅读,必有收获! 进程与线程的区别,早已经成为了经典问题.自线 ...

  4. 谈谈进程和线程的区别

    进程和线程的区别是面试提问频率最高的问题,没有之一. 我们首先了解一下进程和线程的概念. 进程:一个进程就是一个正在执行程序的实例. 线程:操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进 ...

  5. 进程与线程的区别(面试题)

    进程与线程的区别 1.进程是资源分配最小单位,线程是程序执行的最小单位: 2..进程有自己独立的地址空间,每启动一个进程,系统都会为其分配地址空间,建立数据表来维护代码段.堆栈段和数据段,线程没有独立 ...

  6. task.run 强制结束线程_图文介绍进程和线程的区别

    点击蓝色"最码农"关注我哟 加个"星标",每天下午18:03,一起学技术 进程和线程的概念 先了解一下操作系统的一些相关概念,大部分操作系统(如Windows. ...

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

    概念 进程 进程(Process )是指计算机中已运行的程序.进程曾经是分时系统的基本运作单位.--维基 · 进程是正在执行的程序: · 进程是可以分配处理器并由处理执行的实体: 线程 线程(Thre ...

  8. 进程和线程的区别, 面相对象补充, 进程, 数据共享, 锁, 进程池, 爬虫模块(requests, bs4(beautifulsoup))...

    一. 进程和线程的区别?     第一:         进程是cpu资源分配的最小单元.         线程是cpu计算的最小单元.     第二:         一个进程中可以有多个线程.   ...

  9. 进程和线程的区别【转】

    进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性.进程和线程的区别在于: 简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程 ...

  10. [Java]进程与线程的区别(转)

    [Java]进程与线程的区别(转) 线程是指进程内的一个执行单元,也是进程内的可调度实体. 与进程的区别: (1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自 ...

最新文章

  1. 科普丨一文看懂语音识别的技术原理
  2. 开启AngularJS学习之旅
  3. 10分钟快速构建汽车零售看板
  4. oracle锁表查询_专业解决 MySQL 查询速度慢与性能差
  5. 创建一个storageevent事件_事件循环:微任务和宏任务
  6. 【转载】OpenCV(C++ 与 Python 的比较)与 MATLAB 的比较
  7. 批量生成 Gitee 仓库克隆命令的方法
  8. 广东农信迁移上阿里云:系统建设从按月缩短至按天
  9. inventor如何钣金出弧面_Inventor技巧丨外螺纹内径尺寸计算原理
  10. GNU Binutils简介及基本用法
  11. Java基础---Java---正则表达式-----匹配、切割、替换、获取等方法
  12. #pragma comment(lib,ws2_32.lib)
  13. 使用文档检查器后,think-cell 元素损坏
  14. HTML5 教程(四) - 内联元素
  15. java语言将一个字符串集合按GBK编码(简体中文按拼音顺序)排序
  16. labview连线枚举冲突_LabVIEW解决项目冲突
  17. ES6—46:class中getter和setter的设置方法
  18. PS如何制作GIF动画
  19. Django-数据库使用
  20. 联想服务器双系统安装教程,联想笔记本装win8/win10双系统教程

热门文章

  1. 支付宝-转账到支付宝账号接口(新接口)
  2. [原创][从mambo到joomla的迁移实战之五]选择UTF-8 还是GB2312/GBK
  3. 清华“天机”芯片登上Nature封面!七大院系参与研发,全球首款异构融合类脑芯片
  4. 3D打印机耗材ABS和PLA的区别
  5. 00942 ora 表存在_ORA-00942: 表或视图不存在 的原因和解决方法
  6. 实时更新天气微信小程序开发
  7. java项目难点_【体验感悟巧化难点为亮点】 java项目技术亮点难点
  8. ucore lab3学习笔记整理
  9. Delphi 创建文件并写入内容,以及FileCreate释放的方法
  10. python 【raise函数】