当前位置: 首页 > news >正文

进程 Vs 线程

理解进程,线程以及两者之前的区别,对于学习并发编程,异步编程具有很大的帮助。

1. 应用程序

在理解进程,线程之前,需要搞明白一件事情,什么是程序?对于大家来说,一个应用程序就是一个"*.exe"文件。从技术上讲,应用程序是一个可执行文件,包含一组告诉CPU如何运行它的指令。

当启动一个应用程序时,可执行文件中的代码指导CPU执行什么操作

2. 进程

2.1 什么是进程

往简单的讲,进程就是一个正在运行的应用程序。一个应用程序是由一系列指令组成,这些指令由CPU按顺序执行。

这种持续的执行被称为进程,即CPU处于执行该程序指令的过程

当启动一个应用程序的时候,操作系统会执行一些动作,让应用程序转换为进程:

  • 将执行文件加载到内存中,操作系统会为该应用程序分配内存空间,这个内存空间是应用程序独立操作的地方。
  • 操作系统通过进程控制块(PCB),保存进程运行过程中的所有内容(称为进程状态)

2.2 操作系统中进程相关的信息

操作系统为应用程序分配的内存空间,由如下几个区域组成:

  • Text区域:存放应用程序的指令
  • Data区域:存放固定数据,如全局变量和常量
  • Heap区域:存放运行时创建的动态数据
  • Stack区域:跟踪函数调用和临时执行数据

进程状态:不仅包括内存限制,还包括进程打开了哪些文件,正在与哪些硬件设备通信,调度优先级,对派生线程的引用等信息。进程状态帮助操作系统管理整个进程。

http://www.dtcms.com/a/310959.html

相关文章:

  • 小迪23年-22~27——php简单回顾(1)
  • 滚珠花键在汽车制造中有哪些高要求?
  • 【05】VisionMaster入门到精通——圆查找
  • 内网渗透——红日靶场七
  • 排序算法-堆排序
  • MybatisPlus-静态工具DB
  • 在 AKS 中运行 Azure DevOps 私有代理-1
  • 云原生三剑客:Kubernetes + Docker + Spring Cloud 实战指南与深度整合
  • 基于 LFU 策略的存储缓存系统设计与实现
  • 深入 Go 底层原理(八):sync 包的实现剖析
  • Node.js 操作 MongoDB
  • 【机器学习】“回归“算法模型的三个评估指标:MAE(衡量预测准确性)、MSE(放大大误差)、R²(说明模型解释能力)
  • 分布式事务----spring操作多个数据库,事务以及事务回滚还有用吗
  • Oracle 11gR2 Clusterware应知应会
  • 【unity组件_Transform 】
  • 设计模式篇:在前端,我们如何“重构”观察者、策略和装饰器模式
  • 蓝桥杯----串口
  • 内存、硬盘与缓存的技术原理及特性解析
  • 《软件测试与质量控制》实验报告二 单元测试
  • Ubuntu系统VScode实现opencv(c++)视频及摄像头使用
  • 空间平面旋转与xoy平行
  • 【BTC】挖矿
  • MyBatisPlus之CRUD接口(IService与BaseMapper)
  • 【软考中级网络工程师】知识点之堆叠
  • 公网服务器上Nginx或者Openresty如何屏蔽IP直接扫描
  • CS课程项目设计7:基于Canvas交互友好的五子棋游戏
  • 小智服务器Java安装编译(xinnan-tech)版
  • 【05】OpenCV C#——OpenCvSharp 图像基本操作---转灰度图、边缘提取、兴趣区域ROI,图像叠加
  • 28Rsync免密传输与定时备份
  • 【Spring Boot 快速入门】五、文件上传