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

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

进程

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.kler.cn/a/148596.html

相关文章:

  • zabbix监控端界面时间与服务器时间不对应
  • 智享AI 无人自动直播的崛起 ,引领智能互动与自动带货新潮流!
  • 将大型语言模型(如GPT-4)微调用于文本续写任务
  • 如何理解DDoS安全防护在企业安全防护中的作用
  • 低功耗WTK6900P语音ic方案助力电子烟技术革新 打造个性化吸烟体验
  • Day 63 || 拓扑排序、dijkstra
  • 内测分发平台是否支持应用的微服务化部署
  • 力扣二叉树--总结篇(1)
  • 乐观锁和悲观锁
  • 强化学习中的深度Q网络
  • C++设计模式之工厂模式(中)——工厂模式
  • Golang与MongoDB的完美组合
  • 【多线程】-- 05 Lambda表达式
  • [带余除法寻找公共节点]二叉树
  • Python入门学习篇(四)——if详解
  • Leetcode刷题之用队列实现栈(C语言版)
  • 【rust:tauri-app踩坑记录】dangerousRemoteDomainIpcAccess 不适用于IP地址,临时解决方案
  • bash编程 数组和for循环的应用
  • Unity性能优化技巧篇
  • QTextEdit 是 Qt 框架中的一个小部件(Widget),用于显示和编辑多行文本内容
  • ES6模块化导出
  • 使用jmx_exporter监控Kafka
  • Week-T11-优化器对比试验
  • 计算机毕业设计php+bootstrap小区物业管理系统
  • 什么是高级语言、机器语言、汇编语言?什么是编译和解释?
  • 数据结构与算法之贪心: LeetCode 860. 柠檬水找零 (Typescript版)