新闻详情

新闻详情

首页 / 资讯中心 / 详情

线程与进程的基础

发布时间:2026/9/30 4:22:53来源:尧图网络
线程与进程的基础
一、CPU 执行指令的流程CPU在执行指令的流程是取指令,分析指令,执行指令.指令是一个为八位的东西,前面四位是操作码,后面四位是操作数.CPU会取后面四位去进行分析,找到对应的数据,根据指令对照表执行一些操作,这样反复的执行每一条指令,直到有一条指令为全0的时候,那么CPU认为这个程序执行完毕.二、进程与 PCB(进程控制块)在执行一个程序的时候,这个程序会创建一个进程.一个程序可以对应多个进程.进程是操作系统分配的基本单位.PCB(进程控制块),每个进程都会有一个PID,这个是进程的标识符,由操作系统分配的,同一时刻不会存在两个进程的PID重复.PCB是一个结构体,在这个结构体里面有很多属性.我了解了一些比较重要的属性.分别是:内存指针:一个进程的内存空间里面,有的部分是指令,有的部分是数据,这个时候内存指针就能够告诉操作系统哪个是指令,哪个是数据.文件描述符表:一个进程想要读写文件,需要先打开,打开的时候就会在PCB里面构建一个文件相关的结构体,放到PCB的文件描述符表中.文件描述符表包含了很多的结构体,每个结构体表示了具体的文件信息.进程的状态:进程的状态有很多种,我简单的分为了就绪和阻塞.进程的上下文:这个属性类似于黑神话悟空这种存档的游戏.对于计算机来说,寄存器就是上下文,CPU内部有很多寄存器,用于保存当前程序运行的一些中间状态.进程在CPU上执行的时候,寄存器的值会不断的变化,进程离开CPU的时候,把这一时刻CPU上这些寄存器的值全都拷贝出来保存在内存中,就相当于在存档游戏进行存档.直到下次进程在CPU上运行的时候,这个时候寄存器会在内存中把数据读取出来,然后拷贝在CPU上,接着上次的操作继续执行.就跟游戏读档一样.进程的记账信息:这个属性是统计每个进程都在CPU上运行了多久,在优先级机制下,可能会有某个进程分配到CPU的资源会非常少,通过记账信息这个属性,就能够进行灵活调整,给这个进程多分配点资源.三、进程的隔离性每个进程都有自己独立出来的内存空间,这是进程的隔离性,操作系统给每个进程划分了独立的内存地址空间,每个进程只能访问自己的数据,不能访问别的进程的内容.四、线程的引入由于进程的创建,销毁导致操作系统的开销特别大,所以引入了线程这个概念.线程是CPU调度的基本单位,一个进程可以包含若干个线程.引入线程可以减少操作系统的开销,同时可以提升执行效率,但是如果线程太多了反而会导致执行效率变低.线程也称为轻量级进程,创建线程的开销会比进程低很多.每一个线程都是执行流,都可以放在CPU上调度.多线程的编程中,可能同一份数据会有多个线程执行,这会产生冲突,导致程序出现Bug.某个线程执行的途中,可能会出现异常,如果正确的捕获并且处理,那么就还好,如果没有正确的捕获处理,那么就可能会导致其他的线程也出现问题.就会导致整个进程被中止.五、进程和线程的区别进程和线程的区别就是:进程和进程之间有着内存隔离,不会相互影响.线程是轻量级进程,同一个进程中的线程,如果其中一个出现异常,没有正确的处理,就会导致其他的线程也出现问题,从而导致进程被中止.进程与进程之间不会相互共享资源,而线程与线程之间能够共享资源.进程是操作系统分配的基本单位,线程是操作系统调度的基本单位.六、Java 中的线程与 interrupt 方法在Java中,main方法都是主线程,如果创建一个新的线程,那么CPU执行的顺序是随机的,因为CPU执行的顺序非常复杂,所以我们认为执行顺序是随机的.在lambda这个方法创建线程的时候.创建一个循坏的线程进行测试,有一个boolean类型的全局变量,在main里面,如果输入0,这个全局的变量会被设置为false,那么新的线程中的循坏将被终止,如果这个变量是局部变量,那么就会编译报错,这是因为lambda的变量捕获的一个语法问题,局部变量在外部修改之后,lambda里面可能不会修改,就会导致变量不一致的问题.如果Thread.sleep(10000).每执行一次线程,就会等待100_00毫秒,如果使用上面的方法,那么就算全局变量被改为false,线程也会等10000毫秒之后才会停止.这个时候我们可以使用Java库里面提供的方法,获取到进程的状态就行修改,然后在执行另外一个方法,interrupt(),这个方法可以唤醒sleep(),使线程退出阻塞状态.以上内容是我自己对于线程和进程的粗略理解
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

软渲染光栅化核心算法:重心坐标、Edge Function与透视校正 2026/9/30 5:19:26

软渲染光栅化核心算法:重心坐标、Edge Function与透视校正

我当年第一次写软光栅化器的时候,以为最难的部分在数学——顶点变换、矩阵乘法、透视投影,样样都能把人绕晕。可真正把代码跑起来才发现,最折腾人的永远是那一步:屏幕上几百万个像素,到底哪些落在三角形内?…

阅读更多 →
SecGate 3600 防火墙快速上架:CONSOLE 与 WEB 双管理路径实操指南 2026/9/30 5:19:13

SecGate 3600 防火墙快速上架:CONSOLE 与 WEB 双管理路径实操指南

简介:网神SecGate3600防火墙快速指南面向网络安全运维人员、系统集成工程师及刚接触该型号设备的技术人员,用于解决设备开箱后从硬件认知到上线配置的入门问题。资源包内仅含1个PDF文档,大小约1.49MB,内容围绕SecGate 3600防火墙V…

阅读更多 →
2026年膨胀石墨节能型供应商实力参考:优墨复合材料行业全景分析 2026/9/30 5:19:13

2026年膨胀石墨节能型供应商实力参考:优墨复合材料行业全景分析

科普打底:膨胀石墨的核心属性与行业应用基础对于很多刚接触碳素密封材料、环保吸附材料的从业者来说,膨胀石墨还是一个略显陌生的专业名词。我们先从基础常识讲起,帮大家快速建立行业认知。 什么是膨胀石墨?核心属性有哪些?膨胀石墨又称可膨…

阅读更多 →
Agent工具太多怎么选?从function calling到Jev路由决策层 2026/9/30 5:19:13

Agent工具太多怎么选?从function calling到Jev路由决策层

1. 先确认一个事实:Tool、MCP、Skill 正在把 Agent 的“工具箱”塞爆如果你最近在搭 Agent,或者只是在 Codex、Cursor、Trae 里多挂了几个插件,多半已经感觉到一个变化:工具列表越来越长,长到模型开始“选择困难”。先…

阅读更多 →
CommonRoad 自动驾驶场景格式与 Python 工具链安装验证 2026/9/30 5:19:12

CommonRoad 自动驾驶场景格式与 Python 工具链安装验证

做自动驾驶规划控制的人,早晚会撞上一个很尴尬的场面:算法在自己搭的仿真里跑得漂漂亮亮,换一份别人给的场景数据立刻原形毕露。问题往往不在算法本身,而在数据——地图格式不一样、障碍物表示不一样、时间步长不一样、坐标系定义…

阅读更多 →
AI代码量翻倍,安全评分却两年未涨:实证分析与防御指南 2026/9/30 5:19:12

AI代码量翻倍,安全评分却两年未涨:实证分析与防御指南

AI代码越写越多,为什么安全评分两年没涨?——一份基于6份权威报告的实证分析与团队防御指南这两年我做代码安全评审,见过太多团队在拥抱AI编码助手之后的同一个困惑:需求交付速度肉眼可见地快了,AI生成的代码量占比从不…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉