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

进程和线程的区别和联系

1. 进程和线程的联系

1.1 进程

进程就是一个运行起来的一个程序。如下图所示,打开电脑的任务管理器,就可以看到电脑正在运行的程序,而每一个正在运行的程序就是一个进程。

进程

 站在操作系统的角度上要管理进程就需要一个非常大的结构体来描述进程的核心属性,这个结构体就是进程控制块(PCB),然后再把进程组织起来。对于linux操作系统使用链表的形式将多个PCB串到一起。创建一个进程,就创建一个PCB,并初始化其属性,再添加到链表中;销毁一个进程时,就是把PCB从链表中删除;要查看进程列表就是遍历整个链表把重要信息显示出来。

PCB的中关键点

1.pid (进程身份的标识符)

2.内存指针(一组指针,通过内存指针得知要执行的指令在哪里)

3.进程描述符表(进程在读取文件时,需要先打开文件,每打开一个文件,就会把这个文件的信息保存在进程描述符表中)

4.进程状态(就绪和阻塞)

5.进程优先级(有的进程优先级高,分配的资源多)

6.进程上下文(沿着上次的执行状态进行往下执行)

保存上下文:把CPU中寄存器的值中保存在内存(PCB中)

恢复上下文:把PCB中的保存的数据,返还给寄存器

6.进程的记账信息(统计每个进程在CPU执行时间)

1.2 线程

由于进程的创建和销毁都是比较“重”的操作,因此,引入了轻量级的线程,开销相对应进程来说是比较小的。一个进程包含有一个线程或多个线程。

2. 进程和线程的区别

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

2.进程之间所涉及到的资源是互不影响的,而一个进程中的多个线程之间共用当前进程中的资源。

3.进程的创建需要申请资源,进程中的第一个线程和进程同时创建,需要申请资源,但是如果有多个线程的创建,后面的线程就不需要申请资源了。

4.进程的销毁需要释放资源,进程中的线程只有当所有的线程都销毁(进程销毁)时才会释放资源。

相关文章:

  • 【Java面试系列】Spring Boot应用中的事务传播机制与分布式事务实践详解 - 3-5年Java开发必备知识
  • 【软件】在 macOS 上安装和配置 Apache HTTP 服务器
  • React-narice安卓打包流程
  • ifconfig 使用详解
  • animals_classification动物分类
  • 子类是否能继承
  • 解决windows下删除文件提示该项目不存在
  • 设计模式简述(七)原型模式
  • Qt音频采集:QAudioInput详解与示例
  • Android打包及上架应用市场问题处理
  • vue-axios跨域问题
  • 利用CNN卷积神经网络进行声呐图像分类
  • STM32常用外设寄存器介绍
  • golang并发原语groutine channel select sync包
  • vue2打包部署到nginx,解决路由history模式下页面空白问题
  • C++ —— 文件操作(流式操作)
  • Linux服务宕机,java服务导致的内存溢出
  • 公有云子账号认证的原理和步骤
  • 第十六章:向微服务迈进_《凤凰架构:构建可靠的大型分布式系统》
  • linux提权 corn 提权
  • 新公司网站设计注意事项/百度站长平台工具
  • 苹果电脑能建设网站吗/广州排前三的seo公司
  • 做网站设计制作的/百度浏览器
  • 深圳网站制作问/快速网站推广优化
  • 装潢网站模板/深圳网站建设的公司
  • 制作壁纸的软件/首页优化公司