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

进程 Vs 线程

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

1. 应用程序

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

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

2. 进程

2.1 什么是进程

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

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

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

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

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

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

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

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

http://www.lryc.cn/news/608019.html

相关文章:

  • 电路原理图绘制专业实战教程1
  • 深入 Go 底层原理(十五):cgo 的工作机制与性能开销
  • Minimizing Coins(Dynamic Programming)
  • OAuth 2.0 的安全升级版授权协议 OAuth 2.1 详解
  • 【转】大模型安全治理的现状与展望
  • 【龙芯99派新世界】buildroot快速使用笔记
  • WPFC#超市管理系统(4)入库管理
  • STM32——启动过程浅析
  • Shell【脚本 02】离线安装配置Zookeeper及Kafka并添加service服务和开机启动(脚本分析)
  • Kubernetes Gateway API 详解:现代流量路由管理方案
  • Flink2.0学习笔记:Stream API 窗口
  • ubuntu 系统风扇控制软件 CoolerControl
  • 关于项目发布中到后半夜的一些总结
  • Maven - 并行安全无重复打包构建原理揭秘
  • 公网服务器上Nginx或者Openresty如何屏蔽IP直接扫描
  • 译|Netflix 技术博客:一个利用视觉-语言模型和主动学习高效构建视频分类器的框架
  • 初始C语言---第四讲(数组)
  • Python So Easy 大虫小呓三部曲 - 高阶篇
  • 【语音技术】什么是实体
  • appium中urllib3.exceptions.LocationValueError: No host specified. 的错误解决办法
  • cv快速input
  • InfluxDB 与 Node.js 框架:Express 集成方案(二)
  • SpringBoot与TurboGears2跨栈、整合AI服务、智能客服路由系统整合实战
  • 基于Redis自动过期的流处理暂停机制
  • dbt中多源数据的处理
  • 仿真电路:(十七下)DC-DC升压压电路原理简单仿真
  • Git下载及安装保姆级教程
  • 电子电气架构 --- 汽车网络安全概述
  • 深入 Go 底层原理(九):context 包的设计哲学与实现
  • 八股取士-go