谈谈操作系统的多进程

基于STM32的DS1302电子时钟电路与程序设计 这个示例代码中,我们使用DS1302_GetTime函数从DS1302芯片获取当前时间,并使用DS1302_GetDate函数获取当前日期。在本文中,我们将介绍如何使用STM32微控制器和DS1302实时时钟芯片来构建一个基于STM32的DS1302电子时钟,并提供相应的程序设计。请注意,以上示例代码仅供参考,具体的实现细节可能会根据使用的开发环境和硬件组件有所差异。在实际应用中,你可能需要根据自己的需求进行适当的调整和修改。为了完整实现电子时钟的功能,你还可以添加其他功能,例如闹钟设置、温度显示等。 阅读详情

操作系统的多进程图像

操作系统主要控制计算机的硬件,而其中最重要的就是CPU,因此操作系统的最主要工作就是控制CPU更好地执行命令,那么在介绍进程之前,我们首先来了解一下CPU的工作原理是怎样的。

一、CPU的工作模式

首先,CPU取出程序指针PC,然后到对应的寄存器中取出地址为PC的指令,通过译码来分析指令的内容,移动相应寄存器的内容来实现指令,最后程序指针PC指向下一条指令,CPU重复上述工作过程。总的来说,CPU的工作模式就是 “取址-译码-执行”。比如CPU执行如下所示的指令:

50: mov ax, [100]
51: mov bx, [101]
52: add ax, bx
......
100: 1
101: 2

首先,PC 指针被设置为 50,CPU取出指令 mov ax, [100] 执行,将内存地址为 100 中的数据移动到寄存器 ax 中。当 50 中的指令完成后,PC指针指向 51,CPU执行 mov bx, [101],最后 PC 指向 52,将 ax 和 bx 的数据相加,此时 ax=3。

这种工作模式在只能等待某一段程序执行完成之后才能执行另外一段,那么当正在执行的程序卡在某一条指令时(比如读取磁盘上的数据,调用IO等),CPU就会停在这里等待该指令完成,因此CPU的利用率很低。

二、多道程序系统

多道程序系统是在计算机内存中同时存放几道相互独立的程序,使它们在管理程序控制之下,相互穿插的运行 (系统由一个程序转而运行另一个程序时需要使用中断机构中断正在运行的程序) ,以使系统中的各种资源尽可能地满负荷工作,从而提高整个计算机系统的使用效率。 两个或两个以上程序在计算机系统中同处于开始和结束之间的状态,这就称为多道程序系统。其技术运行的特征:多道、宏观上并行、微观上串行。如下图所示:

如上图所示:

  1. 单道程序的 CPU 和 DEV 的执行效率为:CPU=(10+5+10+10+5)/80=0.5,DEV=(5+10+10+5+10)/80=0.5CPU=(10+5+10+10+5)/80=0.5,DEV=(5+10+10+5+10)/80=0.5
  2. 多道程序的 CPU 和 DEV 的执行效率为:CPU=(10+10+5+5+10)/45=0.89,DEV=(10+5+5+10+10)/45=0.89CPU=(10+10+5+5+10)/45=0.89,DEV=(10+5+5+10+10)/45=0.89

因此,多道程序系统能够显著提高 CPU 和 DEV 的利用率。在程序运行的时候,每个程序都需要 PC 以及各种寄存器来描述程序的运行状态,那么这些运行着的程序就叫做进程。通过上述分析,我们可以将进程的特征总结如下:

  1. 动态性:进程是程序的一次执行,它有着创建、活动、暂停、终止等过程,具有一定的生命周期,是动态地产生、变化和消亡的。动态性是进程最基本的特征。
  2. 并发性:指多个进程实体同时存于内存中,能在一段时间内同时运行。并发性是进程的重要特征,同时也是操作系统的重要特征。引入进程的目的就是为了使程序能与其他进程的程序并发执行,以提高资源利用率。
  3. 独立性:指进程实体是一个能独立运行、独立获得资源和独立接受调度的基本单元。凡未建立PCB的程序都不能作为一个独立的单元参与运行。
  4. 异步性:由于进程的相互制约,使得进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进。异步性会导致执行结果的不可再现性,为此在操作系统中必须配置相应的进程同步机制。
  5. 结构性:每个进程都配置一个PCB对其进行描述。从结构上看,进程实体是由程序段、数据段和进程控制块三部分组成的。

三、多进程图像

3.1进程的状态转换

根据进程的运行状态,可以把进程简单地分为新建态,就绪态,运行态,阻塞态和终止态五种状态。比如,你去食堂打饭,那么排队的人组成了一个队列,1)每个处在队列的人的状态就是就绪态;2)同一时刻窗口只能处理一个人的请求,因此正在处理的那个人被称为运行态;3)但是当准备打饭的时候忘了带饭卡,这个人就从运行态变为阻塞态,直到取回饭卡又变成就绪态。进程之间的状态转换如下图所示:

3.2 进程的切换

在同一时刻,内存中存在多个进程,可以根据用户的操作而进行切换。那么进程切换的具体过程是怎样的呢?如下图所示,假设内存中有两个进程,在进程1执行过程中切换到进程2 ,此时:1)记录下进程1中的PC指针,否则无法切换回来; 2)将PC指针切换为进程2的程序开始为止,开始执行进程2。

但是,由于在执行进程2的过程中,更改了寄存器 ax, bx 的值,因此再次切回到进程1时,52号命令 'add ax, bx' 执行完毕后 ax 中的值为 50,而非 1。因此在进程切换时,除了要记录下程序指针 PC 之外,还要记录一些与进程1 密切相关的寄存器的值,这个存放信息的结构被称为进程控制块(Progress Control Block, PCB)。当再次切换回来时,首先加载进程1 的PCB中的数据,然后执行相应的指令。因此,根据上述分析,进程之间的切换可以描述为:

switch_to(pCur, pNew) //pCur 表示当前进程的PCB,pNew 表示待切换进程的PCB
{
	// 将当前执行进程的状态保存在PCB中
	pCur.ax = CPU.ax;
	pCur.bx = CPU.bx;
	...
	pCur.cs = CPU.cs;
	pCur.pc = CPU.pc;
	// 加载新的进程的PCB,执行新的进程
	CPU.ax = pNew.ax;
	CPU.bx = pNew.bx;
	...
	CPU.cs = pNew.cs;
	CPU.pc = pNew.pc;
}

3.3 进程的调度策略

由于在就绪队列中存在多个就绪态的进程,那么在进行进程调度时也必须遵守一定的原则,最常见的是:

  1. 高级调度: 又称作业调度、长程调度。从输入系统的一批作业(job, 用户提交给操作系统计算的一个独立任务)中按照预定的调度策略挑选若干作业进入内存,为其分配所需资源并创建对应作业的用户进程。
  2. 中级调度: 又称平衡调度,中程调度。根据内存资源情况决定内存所能容纳的进程数目,并完成外存和内存中进程对换工作。
  3. 低级调度:又称进程调度/线程调度,短程调度。根据某种原则决定就绪队列中那个进程/线程先获得处理器,并将处理器出让给它使用。

其中常见的低级调度算法主要包括:

  1. 先来先服务(First Come First Server, FCFS)算法。
  2. 最短作业优先(Shortest Job First, SJF)算法。
  3. 最短剩余时间优先(Shortest Remaining Time First, SRTF)算法: 假设当前某进程/线程正在运行,如果有新进程/线程移入就绪队列,若它所需的CPU运行时间比当前运行的进程/线程所需的剩余CPU时间还短,抢占式最短作业优先算法强行剥夺当前执行者的控制权,调度新进程/线程执行。
  4. 最高响应比优先(Highest Response Ratio First, HRRF)算法:非剥夺式算法。其中,响应比 = (作业已等待时间 + 作业处理时间) / 作业处理时间。
  5. 优先级调度算法:优先级高的选择进程/线程优先选择。
  6. 轮转调度(Round-Robin, RR)算法: 也称时间片调度。就绪队列的进程轮流运行一个时间片。
  7. 多级反馈队列(Multi-Level Feedback Queue, MLFQ)算法。

3.4 多进程之间相互影响

想象一下,如果进程1的程序中有 mov [100], ax 而恰好在这个时刻CPU需要切换到进程2,进程2的开始指令刚好存在100的内存地址中。由于进程1中干扰了内存100中的数据,造成进程2损坏。为了使多个进程能够在内存中很好地共存,操作系统给每个进程单独分配一段内存空间,通过映射表将进程中的内存映射为该内存空间的一块区域。如此,虽然在代码中所使用的逻辑地址是一样的,但是通过映射表所得到的实际物理地址是不同的。如下图所示:

3.5 进程之间的通信

有的时候,多个进程之间需要进行合作,共享同一块缓冲区,比如打印(PPT,PDF,Word都可以打印),首先每个进程需要往打印队列中存入数据,由于进程是交替执行的,很有可能出现PPT还没存完,Word又往队列中存储,造成混乱。因此需要设计一种机制来控制进程切换的时机,即:当第一个进程完成时才能切换下一个进程。从上述可以抽象出来一个“生产者-消费者”模型,如下:

while(true){	//生产者进程
	while(counter == BUFFER_SIZE){;}	//BUFFER_SIZE代表缓冲区大小
	buffer[in] = item;	//存入数据
	in = (in+1)%BUFFER_SIZE;
	counter++;	//计数器加1
}
while(true){	//消费者进程
	while(counter == 0){;}	//当缓冲区不为空时,读出数据
	item = buffer[out];
	out = (out+1)%BUFFER_SIZE;
	counter--;	//计数器减1
}
//其中,counter++ 在汇编中的实际过程为:
register = counter;
register = register+1;
counter = register;

假如初始状态:counter = 5,那么该执行过程描述为下图。理论上来讲,生产者使得 counter+1,而消费者使得 counter-1,因此完整执行一遍生产者和消费者之后 counter 应该不变,但由于二者交替执行,因此导致了 counter的混乱。

一种解决的办法是:在生产者执行的时候给 counter 上锁,如果进程想要切换到消费者,首先检查是否上锁,如果上锁则该时刻不能切换,否则可以切换。优化后的执行过程如下:

WINCC7.3破解文件 WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载! 立即下载

相关推荐

标签传播算法LPA:半监督学习解决标注数据不足的完整实战指南

在机器学习实际工程中,标注数据稀缺往往是制约模型性能的核心瓶颈。半监督学习提供了一条利用海量未标注数据来增强模型泛化能力的有效路径,其中标签传播算法(Label Propagation Algorithm, LPA)因其直观的图结构和优雅的数学原理而备受关注。LPA通过将样本映射为图中的节点,以相似度作为边权重,让已知标签沿着图结构不断扩散,从而实现对未知样本的预测。其背后基于聚类假设与流形假设,能在低标注率场景下显著缓解过拟合问题,提升分类准确率。该技术在文本分类、金融风控、图像识别等存在大量无标注数据的

weixin_29056781的博客 241

操作系统原理之多进程、多线程与并发

本文是操作系统原理的学习,认识什么进程和线程、进程调度、进程状态、进程和线程的区别、死锁。

qq15035899256的博客 3062

银河麒麟系统安装redis【亲测可行】

架构:Linux 5.10.0-9-generic x86_64 GNU/Linux。redis版本:redis-6.2.3.tar.gz。然后在执行make install,结束;OS:银河麒麟V10(SP1)未激活。cpu:I5-10代;

lx_nhs的博客 3335

操作系统实验二:观察Linux进程状态

一、实验目的 在本实验中学习Linux操作系统的进程状态,并通过编写一些简单代码来观察各种情况下,Linux进程的状态,进一步理解进程的状态及其转换机制。 二、实验环境 硬件环境:计算机一台,局域网环境; 软件环境:Linux Ubuntu操作系统,gcc编译器。 三、实验内容和步骤 1、Linux进程状态及其相互转换 Linux中,进程有以下6中状态。 Linux系统中的进程主要有以下六种状态。 (1)TASK_RUNNING(可运行状态)。正在运行的进程或在可运行进程队列(run_queue)中等待运行

努力学习的小菜同学 6415

PLC与变频器联动控制:从开关量、模拟量到通讯的接线与编程实战

在工业自动化系统中,电机调速控制是核心需求之一,其关键在于实现可编程逻辑控制器(PLC)与变频器之间的可靠联动。其基本原理是通过PLC输出控制信号,由变频器接收并驱动电机按设定速度运行。这项技术的核心价值在于实现电机的软启停、精确调速与节能控制,广泛应用于风机、水泵、传送带及精密张力控制等场景。其中,开关量控制以其接线简单、抗干扰能力强的特点,成为基础且可靠的方案;而模拟量控制则能实现无级平滑调速,满足更高精度的工艺要求。本文以西门子、三菱等主流品牌为例,深入解析了这两种主流控制方式的硬件接线、参数设置与梯

1270

OriginPro实战:5步搞定碳材料拉曼光谱D峰G峰分析(附完整数据处理流程)

本文详细介绍了使用OriginPro进行碳材料拉曼光谱D峰G峰分析的完整流程,涵盖数据预处理、多图层可视化、高精度分峰拟合等关键步骤。特别针对材料科学研究中的基线漂移、多峰重叠等问题提供专业解决方案,帮助研究者快速完成从原始数据到科研级图表的全流程分析,提升碳材料表征效率与准确性。

vodka的博客 943

【06】多路加速,了解多进程基本原理

线程是操作系统能够进行调度的最小单位,是进程的子集。

qq_73704268的博客 1113

预编码算法(个人总结)

预编码算法是无线通信系统中的关键技术,通过在发送端对信号进行处理,可以有效减少干扰,提高系统性能。预编码算法在5G、Wi-Fi、卫星通信等领域具有广泛的应用前景,同时,随着深度学习、大规模MIMO和物理层安全等技术的发展,预编码算法的研究将进一步推动无线通信技术的发展。CSI的准确性直接影响到预编码的效果。预编码是一种在发送端对信号进行线性变换的技术,以优化信号的空间分布,使得接收端能够更好地接收和解码信号。预编码算法,特别是基于矩阵分解的预编码算法,计算复杂度较高,限制了其在实际系统中的应用。

年糕的博客 5288

操作系统-进程原理

当一个程序的时间片用完后,操作系统会将当前的进程挂起,切换到下一个进程,并保存当前进程的信息,以便后续恢复执行。管道(Pipe)是一种用于进程间通信的机制,它通过创建一个管道,将一个进程的输出连接到另一个进程的输入,从而实现它们之间的数据传输。内核空间进程表中的每个表项通常包含了进程的唯一标识符(如进程ID)、进程状态(如就绪、运行、阻塞)、进程优先级、CPU占用时间、进程所占用的内存等信息。总的来说,进程管理是操作系统的重要功能,通过创建、调度、同步和通信等机制,实现了多任务处理和进程间的协调与合作。

captain 1095

【Flink on k8s】- 1 - Flink Kubernetes Operator 简介 2023

Flink Kubernetes Operator 可以与 Kubernetes 的其他功能和工具集成,可以帮助用户快速定位和解决问题。Flink Kubernetes Operator可以在Kubernetes上实现高可用性,以确保 Flink 集群的稳定性和可靠性。Flink Kubernetes Operator 可以快速地部署 Flink 集群,而无需手动配置和管理集群。Flink Kubernetes Operator可以将Flink集群与其他应用程序隔离,以避免资源争用和干扰。

欢迎来到我的博客,一起探索代码里的世界! 1347

X线DR医学图像 --- DR医用滤线栅及摩尔纹详解 (二) 摩尔纹的产生机理

1,横向摩尔纹的表现 2,纵向摩尔纹的表现 3,摩尔纹在pitch = 143μm(注:pitch为采样间隔/周期)的FPD上的表现。 4,摩尔纹的危害(严重的影响了临床诊断) 5,摩尔纹对胸片肺部肺纹理的破坏 6,滤线栅的频率(滤线栅生产厂家的产品参数)。判断摩尔纹产生的重要依据之一 7,DR平板探测器的采样频率/空间极限分辨率 l.........

松下J27录放机 4981

多进程的原理剖析(实操深刻理解!)

进程是什么 先说说一个程序是怎么执行的,比如 Linux 下面有个 ls 命令,这实际上是一个二进制文件,保存在 /bin 目录下,当我们在终端执行 ls 的时候,终端会在硬盘里面找到这个 /bin/ls 文件,加载到内存中,为其

技术需要沉淀,兴国需要科技! 1594

LVS 负载均衡面试题及参考答案

什么是 LVS 负载均衡?它的主要作用是什么? LVS(Linux Virtual Server)是一个基于 Linux 内核的开源负载均衡项目。它通过将请求流量按照一定的算法分发到后端的多个真实服务器(Real Server)上,从而实现负载均衡的功能。 从原理上来说,LVS 工作在网络层和传输层之间。当客户端发起请求时,请求首先到达 LVS 服务器,LVS 会根据预先设定的规则和算法,比如轮询(Round - Robin)、加权轮询(Weighted Round - Robin)、最少连

大模型大数据攻城狮的专栏 1469

再来谈谈多线程和多进程

为什么80%的码农都做不了架构师?>>> ...

weixin_34306446的博客 144

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

浅谈Python和Java的多进程与多线程的异同

最近在学习Python多线程相关的部分,遇到了这样的一句话:“对于任何Python程序,不管有多少的处理器,任何时候都总是只有一个线程在执行”,即Python中的多线程是“假的多线程”,是什么原因造成这样的说法,搜集查阅了一些资料,并且对比Java,如下是个人对于这个问题的一些理解: 解释型语言 编译性语言例如c语言:用c语言开发了程序后,需要通过编译器把程序编译成机器语言(即计算机识别的二进

Megustas_JJC的博客 9729

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

谈谈mobile web以及浏览器的单/多进程

最近Firefox OS(原来的Boot to Gecko)将mobile web进一步往前推,不仅是通过web运行环境,而是整个应用架构和运行环境,所有的API都是基于web,属于系统级别。虽然要到明年推出商用机,在业界也是扔下石头激起涟漪。继云计算后,Web/HTML5是现在炒作当红词汇,之前我们在谈谈HTML5对生态系统的影响中从产业生态链的角度出发进行分析,本次将从应用的角度出发再做一些思

愷风(Wei)的专栏 8161

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

谈谈安全沙箱

安全沙箱 前言 在最开始的阶段,浏览器是单进程的,这意味着渲染过程、JavaScript 执行过程、网络加载过程、UI 绘制过程和页面显示过程等都是在同一个进程中执行的 , 从稳定性视角来看,单进程架构的浏览器是不稳定的,因为只要浏览器进程中的任意一个功能出现异常都有可能影响到整个浏览器,如页面卡死、浏览器崩溃等。 浏览器本身的漏洞是单进程浏览器的一个主要问题,如果浏览器被曝出存在漏洞,那么在这些漏洞没有被及时修复的情况下,黑客就有可能通过恶意的页面向浏览器中注入恶意程序,其中最常见的攻击方式是利用缓冲

weixin_43905830的博客 1782

多进程的构架方法

  做了4、5年的开发,大大小小的项目也做了不少,但以前都有一个致命的问题,不知不觉就会写出一个巨大的主 程序出来,层次复杂,编码痛苦,调试困难。但似乎大家都认同这样的开发方式,虽然都知道界面和功能分离是好事情,但就是做不到。我自己也曾痛苦的思考过, 但没有什么收效,似乎在Windows下的开发只能是这么痛苦。  一星期前买了>,这一周可谓改天换地,每天都在阅读和思考中度过,想必武侠小说中的武

蓝月的专栏 841

(浓缩+精华)哈工大-操作系统-MOOC-李治军教授-实验3-进程运行轨迹的跟踪与统计

操作系统实验3:进程运行轨迹的跟踪与统计 实验基本内容: 1.基于模板 process.c编写多进程的样本程序,实现如下功能: 所有子进程都并行运行,每个子进程的实际运行时间一般不超过 30 秒; 父进程向标准输出打印所有子进程的 id,并在所有子进程都退出后才退出; 2.在 Linux0.11上实现进程运行轨迹的跟踪: 基本任务是在内核中维护一个日志文件 /var/process.lo...

a634238158的博客 7615

一篇文章让你深入理解线程、多线程、进程、多进程

一、简介 以下内容参考自维基百科, 1.线程和进程简介: 进程  一个进程包括由操作系统分配的内存空间,包含一个或多个线程。一个线程不能独立的存在,它必须是进程的一部分。一个进程一直运行,直到所有的非守护线程都结束运行后才能结束。 线程  又称其为轻量级进程(Light Weight Process)。是操作系统能够进行运算调度的最小单位。大部分情况下,它被包含在进程之中,是进程中的实...

LukeyAlvin的博客 7450

在Python中优雅地用多进程:进程池 Pool、管道通信 Pipe、队列通信 Queue、共享内存 Manager Value

在Python中优雅地用多进程:进程池 Pool、管道通信 Pipe、队列通信 Queue、共享内存 Manager Value

丨汀、的博客 2686

【操作系统+Linux】吐血整理-操作系统+Linux合集

文章目录操作系统1、请你说一下进程和线程的区别?2、什么是临界资源?什么是临界区?3、谈一谈操作系统的地址转化4、请你说一下OS缺页置换算法5、请你说一说死锁发生的条件以及如何解决死锁6、系统调用和普通函数的区别7、操作系统中进程间通信方式8、操作系统中的PV指的是什么9、多进程和多线程的优缺点比较10、虚拟内存和物理内存怎么对应?11、操作系统的缺页异常12、vfork和fork13、谈谈并发与并行14、互斥锁、读写锁、自旋锁15、僵尸进程,孤儿进程16、系统调用的具体过程17、send和recv的底层过

xintu1314的博客 599

多线程与多进程,协程的理解

多线程与多进程的理解 什么是线程 线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。一个线程是一个execution context(执行上下文),即一个cpu执行时所需要的一串指令。 什么是进程 进程是指一个程序在给定数据集合上的一次执行过程,是系统进行资源分配和...

跟着兴趣走,不要被束缚于一种技术 656

谈谈进程、线程、协程

什么是进程? 进程----是操作系统提供的抽象概念,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。程序是指令、数据及其组织形式的描述,进程是程序的实体。程序本身是没有生命周期的,它只是存在磁盘上的一些指令,程序一旦运行就是进程。 当程序需要运行时,操作系统将代码和所有静态数据记载到内存和进程的地址空间(每个进程都拥有唯一的地址空间,见下图所示)中,通过创建和初始化栈(局部变量,函数参数和返回地址)、分配堆内存以及与IO相关的任务,当前期准备工作完成,启动程序,OS将CPU的控制权转移到新创建的进

qq_40531382的博客 193

谈谈进程与线程

什么是进程 我们都知道,CPU是计算机的核心,承担所有的计算任务 官网说法,进程是CPU资源分配的最小单位 字面意思就是进行中的程序,我将它理解为一个可以独立运行且拥有自己的资源空间的任务程序 进程包括运行中的程序和程序所使用到的内存和系统资源 CPU可以有很多进程,我们的电脑每打开一个软件就会产生一个或多个进程,为什么电脑运行的软件多就会卡,是因为CPU给每个进程分配资源空间,但是一个CPU一共就那么多资源,分出去越多,越卡,每个进程之间是相互独立的,CPU在运行一个进程时,其他的进程处于非运行状态,CP

Dax1_的博客 245

谈谈你对进程和线程的理解

概述 进程就是正在运行的程序,它是 cpu 分配资源的最小单位,他只是帮你维护这些资源, 并且一个进程可以执行多个任务,而线程就是程序执行的任务,它是 cpu 执行任务的最小单位,因此也可以说线程是依赖与进程的,假如线程没有进程的话,他是没办法独立存在的,因为它没有自己的资源去运行程序。 进程 进程就是正在运行的程序,它是系统资源调度的独立单位,也是操作系统运行的基本单元,各个进程之间不会相互影响,因为系统给它们分配了不同的空间和资源。他又分为单进程和多进程。 单进程的计算机一次只能做一件事情,而多进程的计

qq_29850249的博客 790
上一篇: git合作开发流程
下一篇: SpringBoot 源码解析笔记
lesive_1421
博客等级 码龄5年 3粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值