c++——进程与线程的区别
线程与进程的比较如下:
1)进程是资源(包括内存、打开的文件等)分配的单位,线程是 CPU 调度的单位;
2)进程拥有一个完整的资源平台,而线程只独享必不可少的资源,如寄存器和栈;
3)线程同样具有就绪、阻塞、执行三种基本状态,同样具有状态之间的转换关系;
4)线程能减少并发执行的时间和空间开销;
对于,线程相比进程能减少开销,体现在:
1)线程的创建时间比进程快,因为进程在创建的过程中,还需要资源管理信息,比如内存管理信息、文件管理信息,而线程在创建的过程中,不会涉及这些资源管理信息,而是共享它们;
2)线程的终止时间比进程快,因为线程释放的资源相比进程少很多;
3)同一个进程内的线程切换比进程切换快,因为线程具有相同的地址空间(虚拟内存共享),这意味着同一个进程的线程都具有同一个页表,那么在切换的时候不需要切换页表。而对于进程之间的切换,切换的时候要把页表给切换掉,而页表的切换过程开销是比较大的;
4)由于同一进程的各线程间共享内存和文件资源,那么在线程之间数据传递的时候,就不需要经过内核了,这就使得线程之间的数据交互效率更高了;
所以,线程比进程不管是时间效率,还是空间效率都要高。
c++——进程与线程的区别相关推荐
- Linux进程与线程的区别 详细总结(面试经验总结)
首先,简要了解一下进程和线程.对于操作系统而言,进程是核心之核心,整个现代操作系统的根本,就是以进程为单位在执行任务.系统的管理架构也是基于进程层面的.在按下电源键之后,计算机就开始了复杂的启动过程, ...
- 进程和线程的区别?什么时候用进程?什么时候用线程?----看到好的复制到自己的园子里哈哈...
进程和线程的区别?什么时候用进程?什么时候用线程? 答:首先得知道什么是进程什么是线程? 我的理解是进程是指在系统中正在运行的一个应用程序:程序一旦运行就是进程,或者更专业化来说:进程是指程序执行时的 ...
- Linux进程与线程的区别
2019独角兽企业重金招聘Python工程师标准>>> Linux进程与线程的区别 cnyinlinux 本文较长,耐心阅读,必有收获! 进程与线程的区别,早已经成为了经典问题.自线 ...
- 谈谈进程和线程的区别
进程和线程的区别是面试提问频率最高的问题,没有之一. 我们首先了解一下进程和线程的概念. 进程:一个进程就是一个正在执行程序的实例. 线程:操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进 ...
- 进程与线程的区别(面试题)
进程与线程的区别 1.进程是资源分配最小单位,线程是程序执行的最小单位: 2..进程有自己独立的地址空间,每启动一个进程,系统都会为其分配地址空间,建立数据表来维护代码段.堆栈段和数据段,线程没有独立 ...
- task.run 强制结束线程_图文介绍进程和线程的区别
点击蓝色"最码农"关注我哟 加个"星标",每天下午18:03,一起学技术 进程和线程的概念 先了解一下操作系统的一些相关概念,大部分操作系统(如Windows. ...
- 进程与线程的区别和联系
概念 进程 进程(Process )是指计算机中已运行的程序.进程曾经是分时系统的基本运作单位.--维基 · 进程是正在执行的程序: · 进程是可以分配处理器并由处理执行的实体: 线程 线程(Thre ...
- 进程和线程的区别, 面相对象补充, 进程, 数据共享, 锁, 进程池, 爬虫模块(requests, bs4(beautifulsoup))...
一. 进程和线程的区别? 第一: 进程是cpu资源分配的最小单元. 线程是cpu计算的最小单元. 第二: 一个进程中可以有多个线程. ...
- 进程和线程的区别【转】
进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性.进程和线程的区别在于: 简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程 ...
- [Java]进程与线程的区别(转)
[Java]进程与线程的区别(转) 线程是指进程内的一个执行单元,也是进程内的可调度实体. 与进程的区别: (1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自 ...
最新文章
- 科普丨一文看懂语音识别的技术原理
- 开启AngularJS学习之旅
- 10分钟快速构建汽车零售看板
- oracle锁表查询_专业解决 MySQL 查询速度慢与性能差
- 创建一个storageevent事件_事件循环:微任务和宏任务
- 【转载】OpenCV(C++ 与 Python 的比较)与 MATLAB 的比较
- 批量生成 Gitee 仓库克隆命令的方法
- 广东农信迁移上阿里云:系统建设从按月缩短至按天
- inventor如何钣金出弧面_Inventor技巧丨外螺纹内径尺寸计算原理
- GNU Binutils简介及基本用法
- Java基础---Java---正则表达式-----匹配、切割、替换、获取等方法
- #pragma comment(lib,ws2_32.lib)
- 使用文档检查器后,think-cell 元素损坏
- HTML5 教程(四) - 内联元素
- java语言将一个字符串集合按GBK编码(简体中文按拼音顺序)排序
- labview连线枚举冲突_LabVIEW解决项目冲突
- ES6—46:class中getter和setter的设置方法
- PS如何制作GIF动画
- Django-数据库使用
- 联想服务器双系统安装教程,联想笔记本装win8/win10双系统教程
热门文章
- 支付宝-转账到支付宝账号接口(新接口)
- [原创][从mambo到joomla的迁移实战之五]选择UTF-8 还是GB2312/GBK
- 清华“天机”芯片登上Nature封面!七大院系参与研发,全球首款异构融合类脑芯片
- 3D打印机耗材ABS和PLA的区别
- 00942 ora 表存在_ORA-00942: 表或视图不存在 的原因和解决方法
- 实时更新天气微信小程序开发
- java项目难点_【体验感悟巧化难点为亮点】 java项目技术亮点难点
- ucore lab3学习笔记整理
- Delphi 创建文件并写入内容,以及FileCreate释放的方法
- python 【raise函数】