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

进程、线程以及进程与线程的区别

进程

1.什么是进程?

进程是进程实体的运行过程,是系统进行资源分配和资源调度的一个独立单位。

进程实体(又叫进程映像)由进程控制块(PCB),程序段数据段三部分构成。

PCB

进程控制块(Processing Control Block),是操作系统核心中一种数据结构,主要表示进程状态,其作用是使一个程序成为一个能够独立运行的基本单位,并且可以并发执行。或者说,OS是根据PCB来对并发执行的进程进行控制和管理。PCB通常是占用系统内存中一块连续的内存空间,存放着操作系统用于描述进程情况及控制进程运行的全部信息,如进程标识符PID,上下文数据,程序计数器,内存指针(指向虚拟地址空间),I/O信息(进程打开的文件描述符)等。

程序段

进程中能被进程调度程序在CPU上执行的程序代码段。

数据段

一个进程的数据段,可以是进程对应的程序加工处理的原始数据,也可以是程序执行后产生的中间或最终数据。

2.为什么要有进程?

操作系统引入进程的主要目的是为了更好地管理系统资源,提高系统的并发性和效率。通过进程,操作系统可以将CPU时间、内存等资源分配给不同的程序,从而实现多个程序同时运行的效果。此外,进程还可以实现程序之间的通信和同步,使得程序之间可以相互协作,完成更加复杂的任务。

线程

1.什么是线程?

线程是计算机中的基本执行单位。每个线程包含一个独立的执行序列、执行状态和相关的系统资源。多个线程共享同一个进程的地址空间和其他的资源,因此它们之间的通信和协调比较容易。在多线程程序中,多个线程可以同时执行不同的任务,在单处理器系统中,通过在不同的时刻切换不同的线程执行,可以实现伪并发的效果。线程包含线程独立栈,寄存器,以及程序计数器。

2.为什么要有线程?

1.更加易于调度
2.提高并发性,因为可以创建多个线程去执行同一个进程的不同部分
3.开销少,因为创建进程的话要创建PCB,存放上下文信息,文件信息等等,开销比较大,二创建线程的话开销就会比较少

进程与线程的区别

1. 进程是操作系统资源分配的基本单位,线程是任务调度和执行的基本单位。

2.进程有自己独立的地址空间,每启动一个进程,系统都会为其分配地址空间;线程没有独立的地址空间(线程所使用的资源来自其所属进程的资源),线程组之间只能共享资源。

3.线程之间通信更方便,同一个进程下,线程共享全局变量,静态变量等数据;进程之间的通信需要以通信的方式(IPC)进行(但多线程程序处理好同步与互斥是个难点)

4. 每个进程都有独立的代码和数据空间(程序上下文),进程之间的切换会有较大的开销;而所属同一个进程的线程共享代码和数据空间,线程之间切换的开销小。线程为什么比进程切换开销小

总结:

多进程的优势在于cpu核心数,及资源数量,适用于cpu密集型工作环境

多线程的优势在于切换代价小,适用于IO密集型工作环境涉及频繁IO阻塞导致的线程切换

http://www.lryc.cn/news/246610.html

相关文章:

  • Java中的jvm——面试题+答案(Java虚拟机的基本概念,包括内存区域、类加载机制、垃圾回收等)——第15期
  • 大数据平台/大数据技术与原理-实验报告--MapReduce编程
  • linux磁盘清理
  • 万宾科技第四代可燃气体监测仪的作用
  • 【Linux】探索进程的父与子
  • 蚁剑低版本反制
  • Arthas 监听 Docker 部署的java项目CPU占比高的信息
  • Node.js入门指南(二)
  • 解锁Jira本地部署的数据中心版高级功能,打造高效、智能、精细化的项目管理
  • java线程三种方式
  • 关于mysql的lower_case_table_names引发的思考
  • springboot+vue实现websocket通信实例,进入页面建立连接
  • 【个人记录】同步Linux服务器时间和时区
  • 面试常问-如何判断链表有环、?
  • 基于springboot实现农机电招平台系统项目【项目源码+论文说明】计算机毕业设计
  • 森林无人机高效解决巡查难题,林区防火掀新篇
  • python 爬虫之 爬取网站信息并保存到文件
  • kubelet漏洞CVE-2020-8559复现与分析
  • 基于C#实现奇偶排序
  • Kibana部署
  • 【Linux】了解进程的基础知识
  • ES6 — ES14 新特性
  • 附录12-time.h的常用方法
  • C语言公交车之谜(ZZULIOJ1232:公交车之谜)
  • Liunx Ubuntu Server 安装配置 Docker
  • Oracle ORA12514 监听程序当前无法识别连接描述符中请求的服务
  • druid keepAlive 导致数据库连接数飙升
  • 四川竹哲电子商务有限公司深耕抖音电商服务领域
  • 爬虫中XPath语法四个重要概念及示例
  • MySQL-03-索引