进程和线程概念和区别详解

JavaEE系列文章目录


在这里插入图片描述

💥 💥 💥如果你觉得我的文章有帮助到你,还请【关注➕点赞➕收藏】,得到你们支持就是我最大的动力!!!
💥 💥 💥

版权声明:本文由【马上回来了】原创、在CSDN首发、需要转载请联系博主。
版权声明:本文为CSDN博主「马上回来了」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

在这里插入图片描述

🚀🚀🚀 新的知识开始喽🚀🚀🚀
在这里插入图片描述


1.进程

进程就是在硬盘里的可执行文件被CPU读取并且运行起来的文件.

进程和进程之间是相互独立的,通过专门设备MMU来构建虚拟地址空间映射到实际的物理地址空间,如果进程访问的地址不在该进程范围内,为了不影响其他进程,MMU会将通知进程(比如把该进程杀死).

进程之间是相互独立的,存在隔离性,如果是进程间的相互访问,引入一个新机制,进程间通信,无论是哪种进程间的通信,核心原则相同:找到一个多个进程都能访问到的公共资源,然后基于公共资源来交换数据.

操作系统如何管理进程?
1.通过pcd结构体来描述进程说包含的信息
2.通过双向链表的数据结构来组织
pcb描述进程的信息有哪些?
1.pid
一串数字,同一个主机同一时刻,进程的唯一表示
2.内存指针
为进程开辟内存空间 ,描述进程持有的内存资源
3.文件描述附表
每个进程都可以打存在硬盘上的文件,文件描述符表就记录了这个进程打开了哪些文件,描述进程持有的文件资源
下面几个信息与进程调度有关
4.进程状态
①就绪状态,如果CPU没被占用满,可直接执行
②阻塞状态,当前无法被CPU执行
5.进程优先级
在这么都进程里,操作系统根据优先级来个每个进程调用安排时间,创建进程时,可以通过系统调用来干预优先级(在进程优先级一样高的情况下)
6.进程上下文
对于CPU来说,上下文就是CPU寄存器里的值,进程在CPU上执行了一会儿,切换到别的进程执行就需要保存当前进程的信息(存档),下次有调用该进程的时候接着上次没执行完的进程继续执行
7.进程记账信息
记录进程执行了多少条执行,避免一些进程完全无法分配到cpu

2.线程

一个进程默认包含一个线程,也可以包含多个线程,对于多线程的应用程序,每个线程都可以执行特定的任务,提高了CPU的使用效率.

3.调度

CPU的资源非常有限,一个CPU(单核)在某一时刻只能运行一个进程,这个进程执行结束了才能执行下一个进程(并发执行),但是我们的电脑上实际运行的进程很多甚至上百,那么是怎么实现的能够"同时"实现多进程的呢?

CPU的集成程度(单位面积内的组件数量)决定了CPU的工作效率,但是截至到目前,CPU已经达到了5nm的制程,想要进一步提高制程比较困难,因此就把多个CPU焊在同一块板上,这样多核cpu就诞生了,多核CPU可以同时执行多个进程(并行执行).

结合上面提到的进程调度相关的信息,这就可以解释为什么我们的计算机可以"同时并发"的执行多个进程了,这里"同时并发"是指宏观上的"并发+并行",因为CPU的运算速度极快,就算是单核CPU的并发执行,在多个进程间切换,人类肉眼无法察觉到,再加上CPU多核的并行执行,所以多核CPU实际上是以并发+并行的方式管理者进程,而且我们也无法知道是并发执行的多些还是并行执行的多一些,这就是为什么电脑上执行的进程数往往大于CPU的内核数的原因.

4.进程和线程

系统的调度已经实现了多进程,但是在某些情况,频繁的创建进程和销毁进程非常的消耗时间(给进程分配内存空间和销毁进程的内存空间极大)的影响了CPU的使用效率,因此在这个基础上线程就诞生了.

进程是操作系统分配资源的基本单位
线程是操作系统调度的基本单位

一个进程包含了一组PCB,每个PCB都包含了一个线程,这些线程共用该进程执行的内存资源和文件资源,每个线程都是一个"执行流",可以单独在CPU上进行调度.
因此描述进程的相关信息其实也是在描述线程,CPU在实现多线程时,实际上某一个时间段是执行改进程里的某个线程,对于多CPU则可以同时执行该进程里的多个线程.
多线程极大的提高了CPU的使用效率,只有在第一次创建线程时才会申请资源空间,后续在创建新的线程都是共用的同一份资源(节省了申请资源的开销),在销毁最后一个线程时,才会真正释放资源,前面的线程销毁都不必释放资源.

4.面试常考

进程和线程的概念和区别?
1.正在运行的程序叫做进程
2.进程包含线程,线程比进程更轻量,创建更快,销毁也更快
3.同一个进程的多个线程之间共用同一份内存/文件资源,进程和进程之间则是独立的内存/文件资源
4.进程是资源分配的基本单位,线程是调度执行的基本单位



🌏🌏🌏今天的你看懂这里又学到了很多东西吧🌏🌏🌏

在这里插入图片描述

🌔 🌔 🌔下次见喽🌔 🌔 🌔
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马上回来了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值