JavaWeb语法一:进程和线程的区别与联系
创始人
2024-04-21 18:58:02
0

目录

1.进程的概念

1.1:进程控制块抽象(PCB)

1.2:进程调度的相关属性

1.2.1:进程的状态

1.2.2:优先级

1.2.3:上下文

1.2.4:记账信息

2:进程的虚拟地址空间

3.线程

3.1进程和线程对资源的区别

3.2:如何描述线程

3.3:线程问题

3.3.1:线程数量过多

3.3.2:线程不安全

3.3.3:线程不安全的延申

4.进程和线程的联系

5.进程和线程之间的区别(面试题)


1.进程的概念

进程就是操作系统时一个正在运行的程序的一种抽象。可以把进程看作程序的依次运行过程,进程是操作系统进行资源分配的最小单位。

 知道进程的基本概念,就要进一步了解怎么描述一个进程,就像你知道一个美女,但你要知道怎么描述一个美女给你朋友。

进程是通过进程控制块来进行描述进程。

是通过双向链表把多个PCB给串到一起来进行组织的。

1.1:进程控制块抽象(PCB)

1.进程的唯一标识 pid

就相当于每个人的身份证一样。

2.进程关联的程序信息---内存指针

指明自己运用了哪些内存。

3.文件描述符表

硬盘上的文件等其他资源。

4.进程调度的相关属性

接下来,会详细的讲解。

1.2:进程调度的相关属性

打开QQ是一个进程,打开微信是一个进程.....这么多进程又是如何的分配资源了,这里就要说起操作系统中一个中重要的调度器CPU。

我的电脑只有8个cpu,难道只能一次调用8个进程。这当然是不行的呀!,所以我们希望进程是同时运行,分时复用。这又是什么意思呢?这就引出了并行和并发的两个概念。

并行:微观上同一时刻,两个核心的进程同时执行。

并发:微观上统一时刻,一个核心只能运行一个进程,但是它能对进程快速的切换。就好像一个cpu上多个进程不停的切换。

例如:并行,就是两个人喂两个小孩。

           并发,就是一个人喂两个小孩,一个小孩吃一口,轮流的吃。

从这里就引出来进程状态。

1.2.1:进程的状态

就绪状态:随叫随到,进程时刻准备着去CPU执行。

运行状态:正在CPU上执行。

堵塞状态:一定时间内,无法到CPU上执行。

1.2.2:优先级

CPU进行多线程进行调度的时候,是按什么规律来进行调度的?在进行进程调度的时候,CPU是不会一碗水端平的,也是有优先级。

1.2.3:上下文

操作系统在进行切换的时候,就需要把进程中间状态记录下来,保存好,下次直接恢复到上次的状态。这上面的这段操作就类似于游戏中的"存档“,"读档"。

上下文本质就是你存档的内容。进程中的上下文就是CPU中的各个寄存器(CPU内置的存储数据的模块,保存的就是程序过程中的中间结果。)的值。

保存上下文:就是把这些CPU寄存器的值,记录保存到PCB中。

恢复上下文:就是把PCB中的这些寄存器值恢复回去。

1.2.4:记账信息

操作系统统计每个进程在CPU上占用的时间和执行的指令数目,根据这个来决定下一个阶段如何调度。

2:进程的虚拟地址空间

在程序中所获取的内存地址,并非是真实的物理内存的地址,而是经过了一层抽象,虚拟出来的地址。正如c语言的指针,这里的内存地址,就是虚拟的内存地址,并非真实的物理内存地址。

如果用真实的内存进程,一旦进程1不小心访问的内存越界就又可能导致越界的这段内存的该进程也出现崩溃,无法使用。这就引出来虚拟地址空间。

 假如进程1访问内存的时候,操作系统内核该地址是否超出进程1的访问范围,如果超出,就会直接向进程反馈你一个错误(SIGN SEGEMENT FAULT)会引起该进程的崩溃,而其他进程不会收到影响。

虚拟地址空间,让进程使用的内存空间,进行"隔离"起来。主要就是为了避免进程之间相互产生影响。

以上就是进程的知识,接下来我们要了解一下,什么是线程。

3.线程

进程和线程都是解决并发编程的问题,但进程都可以实现并发编程,为什么又要提出线程这个概念呢?

正就是因为进程太重了,这里的重,是主要就是重在"资源分配/回收"上,具体的来说:创建一个进程,开销大;销毁一个进程,开销也比较大,调度一个进程,开销还比较大,这样就使消耗资源多,速度慢。在这个追求速度的世界,线程应运而生,故线程也叫做“轻量级进程",它为啥轻呢?因为它把申请资源/释放资源的操作给省下来了。

3.1进程和线程对资源的区别

这个我们就来举一个例子,假如你有一个餐馆,生意很好,你餐馆的位子不够,这时候你要增加座位。

进程:

这就是进程,它决定开一个分店,那你就需要一个新的送菜,新的地方,新的餐桌,你在等这些新的资源,是不是需要大量的时间,而这些新的在操作系统都是资源。这就说明开一个进程,需要分配资源。

线程:

 线程就打算在店外面多加几套桌椅。这样这些增加的桌椅可以共同使用之前的资源,可以节省时间。就这样剩下了申请资源的操作,从而达到轻量。

3.2:如何描述线程

前面介绍的PCB 里的状态,上下文,优先级,记账信息,都是每个线程有自己的,各自记录各自的。但是同一个进程里的PCB之间,所有线程的pid ,内存指针和文件描述附表也是一样的。

3.3:线程问题

3.3.1:线程数量过多

上面讲述了开辟线程会节省时间,但多个线程会不会,使得时间搜快搜快的呢?答案是不是的!

假如你想找三个人分别给你扎头发,化妆,配礼服,但是那三个人又带了自己的闺蜜,你瞬间有六个人,但其中两个人一直在商量,哪套衣服更好,一直决定不下来。

上述问题拿到操作系统上,增加线程数量,也不是可以一直提高速度,一个人只能穿套礼服(CPU核心数量是有限的)太多人一起决定穿哪一套,反而拖慢了速度。线程数量太多,核心数目有限,不少的开销反而浪费在在线程调度上。

3.3.2:线程不安全

举例子:

假如有一天,三兄弟收到了一个任务,要去吃一只鸡,大哥吃了一只鸡腿,告诉二哥和小弟说:”这鸡腿是我吃过最好吃的",二哥和小弟听了此话,都去抢另一个鸡腿,还为此打架起来。

上述问题拿到操作系统上,两个线程同时访问同一个公共变量。此时就会出现线程不安全问题。

3.3.3:线程不安全的延申

接上面的例子,大哥最后一把夺过鸡腿,给了小弟,这时候二哥火了,瞬间就把桌子给掀翻了,哦吼!大家都吃不了。

这就是一个线程抛异常了,如果处理不好,很可能把整个进程都给带走。其他线程也就挂了。

4.进程和线程的联系

1,进程包含线程,每一个进程至少有一个线程(只有第一个线程启动的时候,开销比较大)。

2,同一个进程的多个线程之间,共用了进程的同一份资源。

5.进程和线程之间的区别(面试题)

1.本质区别:.进程是资源分配的最小单位,线程是系统调度的最小单位。

2.从属关系:进程包含线程,线程属于进程。

3.开销不同:进程的创建,销毁,调度的开销都远大于线程。

4.资源拥有不同:进程和进程之间不共享内存空间,每个进程都有自己独立的内存和资源。同一个进程的所有线程之间共享同一个内存空间。


总结:

以上就是我总结的进程和线程的知识点,若有错的,或是不太准确的,请各位铁子留言指错,若感觉不错,请一键三连。

相关内容

热门资讯

安卓系统的如何测试软件,从入门... 你有没有想过,你的安卓手机里那些神奇的软件是怎么诞生的呢?它们可不是凭空出现的,而是经过一系列严格的...
小米8安卓系统版本,安卓系统版... 你有没有发现,手机更新换代的速度简直就像坐上了火箭呢?这不,小米8这款手机自从上市以来,就凭借着出色...
华为手机安卓系统7以上,创新体... 你有没有发现,最近华为手机越来越受欢迎了呢?尤其是那些搭载了安卓系统7.0及以上版本的机型,简直让人...
儿童英语免费安卓系统,儿童英语... 哇,亲爱的家长朋友们,你是否在为孩子的英语学习发愁呢?别担心,今天我要给你带来一个超级好消息——儿童...
ios系统切换安卓系统还原,还... 你有没有想过,有一天你的手机从iOS系统切换到了安卓系统,然后再从安卓系统回到iOS系统呢?这听起来...
灵焕3装安卓系统,引领智能新体... 你知道吗?最近手机圈里可是掀起了一股热潮,那就是灵焕3这款神器的安卓系统升级。没错,就是那个曾经以独...
安卓系统指南针软件,探索未知世... 手机里的指南针功能是不是让你在户外探险时倍感神奇?但你知道吗,安卓系统中的指南针软件可是大有学问呢!...
华为是不用安卓系统了吗,迈向自... 最近有个大新闻在科技圈里炸开了锅,那就是华为是不是不再使用安卓系统了?这可不是一个简单的问题,它涉及...
安卓系统热点开启失败,排查与解... 最近是不是你也遇到了安卓系统热点开启失败的小麻烦?别急,让我来给你详细说说这个让人头疼的问题,说不定...
小米max2系统安卓,安卓系统... 你有没有听说过小米Max2这款手机?它那超大的屏幕,简直就像是个移动的电脑屏幕,看视频、玩游戏,那叫...
电池健康怎么保持安卓系统,优化... 手机可是我们生活中不可或缺的好伙伴,而电池健康度就是它的生命力。你有没有发现,随着使用时间的增长,你...
安卓手机怎么调系统颜色,安卓手... 你有没有发现,你的安卓手机屏幕颜色突然变得不那么顺眼了?是不是也想给它换换“脸色”,让它看起来更有个...
安卓系统清粉哪个好,哪款清粉工... 手机用久了,是不是觉得卡得要命?别急,今天就来聊聊安卓系统清理垃圾哪个软件好。市面上清理工具那么多,...
华为被限制用安卓系统,挑战安卓... 你知道吗?最近科技圈可是炸开了锅!华为,这个我们耳熟能详的名字,竟然因为一些“小插曲”被限制了使用安...
安卓系统是不是外国,源自外国的... 你有没有想过,我们每天离不开的安卓系统,它是不是外国货呢?这个问题听起来可能有点奇怪,但确实很多人都...
安卓系统缺少文件下载,全面解析... 你有没有发现,用安卓手机的时候,有时候下载个文件真是让人头疼呢?别急,今天就来聊聊这个让人烦恼的小问...
kktv系统刷安卓系统怎么样,... 你有没有听说最近KKTV系统刷安卓系统的事情?这可是个热门话题呢!咱们一起来聊聊,看看这个新玩意儿到...
安卓系统连接电脑蓝牙,操作指南... 你有没有遇到过这种情况:手机里堆满了各种好用的应用,可就是想找个方便快捷的方式,把手机里的音乐、照片...
安卓车机11.0系统包,智能驾... 你有没有发现,最近你的安卓车机系统好像悄悄升级了呢?没错,就是那个安卓车机11.0系统包!这可不是一...
安卓系统最高到多少,从初代到最... 你有没有想过,你的安卓手机系统升级到哪一步了呢?是不是好奇安卓系统最高能到多少呢?别急,今天就来带你...