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

进程和线程的区别和联系

一,进程(Process\Task)

1.定义:进程简单来说就是程序执行一次的过程,进程是操作系统分配资源的基本单位。

1.2:PCB(进程控制块)Process Control Block

进程控制块用来记录进程相关信息,如进程标识,关联进程信息等。用C语言来说就是一个庞大的结构体。pcb中有pid,文件描述符表,内存指针等。

那么计算机中是如何执行进程的呢?

1.3进程执行原理:

最初的计算机只能执行一个进程任务,效率低下,所以后来多任务操作系统登场了,采用分时复用的方式来使仅仅几个CPU就可以执行多个任务,并且

在同一个CPU中,同时执行多个任务,就叫做“并发执行”。

在同多个CPU中,同时执行多个任务,就叫做“并行执行”。

对应的,进程就有两个状态:就绪状态和阻塞状态;

进程优先级:有些进程本身需要消耗 cpu 资源更多(如游戏和浏览器对比,游戏需要消耗 cpu 资源比浏览器更多),则该进程的优先级较高。

进程的上下文:保存进程执行的中间状态,确保并发执行时 cpu 能够沿着某个进程上次的执行状态继续执行。

进程的记账信息:统计每一个进程在 cpu 上运行了多久。

二,线程(Thread)

2.1定义:线程是一个进程的一部分,在并发执行的过程,CPU频繁的创建,销毁对资源的消耗

比较大,所以线程就出现了,进而可以理解以为线程是一种轻量化的进程。

2.2

1)进程包含一个或多个线程,线程是CPU分配资源的基本单位,线程会共享进程中的资源。

2)线程只会在进程创立之初消耗资源,相应的线程只会伴随着进程的销毁而结束,才会释放资源。

3)对于线程与线程之间,因为资源相互独立,各自的线程是不会互相影响的,但是在同一个进程中,进程是会相互影响的,往往伴随着一个线程的崩溃就会引出一系列问题,这就是所谓的"线程安全问题".

cpu 执行线程的过程,与 进程调度 是一样的,但是我们称为线程调度。每一个线程都有对应的线程调度信息(状态、优先级、上下文和记账信息),但是一个进程中的所有线程都共享同一份文件描述符表内存指针

2.3进程状态:

2.3.1)NEW:线程创建之初,还未经start()方法调用;

2.3.2)runnable:可执行或执行中的状态

2.3.3)terminated:线程终止

2.3.4)time_waiting\waiting:等待其他线程

2.3.5)blocked:因为锁而导致阻塞状态。

三进程和线程的区别和联系

1.进程包含一个或多个线程,称为主线程。

2.线程与线程之间资源独立,各自互不打扰,而线程与线程之间往往伴随着一个线程的崩溃就会引出一系列问题,相互影响。

3.对进程来说,每创建一个进程,就会申请资源,而对于线程来说,伴随着进程的生命周期,在进程还未结束的时候,销毁一个线程时,不会影响资源.

4.进程是操作系统资源分配的基本单位,线程是操作系统调度执行的基本单位。

http://www.cnnetsun.cn/news/2138151.html

相关文章:

  • 多线程同步并行查询-CompletableFuture完整落地方案
  • 3 分钟让网页“活”过来(底层+手写+AI提示词)
  • 【Unity 实用工具篇】 | Unity切割插件 Ezy-Slice
  • 37岁程序员转行大模型:挑战与机遇并存,你需要知道的关键策略
  • 3分钟搞定Dell G15散热控制:开源神器Thermal Control Center完全指南
  • 从零构建全栈AI对话应用:架构设计、核心模块与部署实践
  • 为AI Agent构建长期记忆:Orca Memory架构解析与集成实践
  • 我用 AI Agent 掀翻公司协作旧模式,从售后到研发,效率直接翻倍|技术老兵复盘
  • 对于docker相关的理解
  • 5分钟免费解锁PotPlayer实时字幕翻译:让外语视频秒变中文的终极教程
  • 量子优化新突破:约束感知QAOA与汉明权重算子
  • ColabFold蛋白质结构预测实战:从环境配置到性能调优的完整指南
  • LayerDivider:用AI智能分层技术,5分钟将插画变可编辑PSD图层
  • K8s调度策略实战:如何用Binpack和Spread优化你的集群资源利用率
  • 2026 年产品经理必备语音转文字工具:6 款产品需求沟通场景深度评测
  • 熵减开发悖论:软件测试视角下的审视与突围
  • 裸奇点计算禁忌:软件测试领域不可触及的终极边界
  • FF14过场动画跳过插件:3分钟快速配置完全指南
  • Win11Debloat:3步彻底优化Windows系统性能与隐私设置
  • ARM C库函数依赖与定制化实现解析
  • 从故障工单到OEE监控,TPM实战体系拆解与落地参数
  • 深度解析:Win11Debloat的Windows系统优化完整实践
  • 别把 async 当银弹:在 CPU 密集型图像处理服务中,优秀工程师为什么要敢于说“不”
  • Python 数据库优化:索引与查询
  • 计算机专业生打 CTF 全流程详解:零基础小白快速入门、赛事高效拿分、实战踩坑避坑完整版手册
  • SUSE以“数字主权“为旗帜,却难掩60亿美元出售传闻的尴尬
  • 孩子对英语没兴趣?KISSABC“玩一玩”+“配音秀”让孩子主动求学
  • Pixelle-Video:三步实现AI全自动短视频生成的专业开发指南
  • 基于最小方差无畸变响应滤波器组的谱相关密度估计(Matlab代码实现)
  • Kubernetes Pod启动耗时仅剩113ms,但函数首请求仍卡480ms?:Java Agent无侵入式类预加载技术首次开源解析