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

进程和线程的联系与区别

文章目录

  • 一、进程和线程的联系
  • 二、进程和线程的区别

一、进程和线程的联系

操作系统中可以有很多进程,每个进程都有自己独立的资源;一个进程中可以有很多线程,系统中的每个线程都能独立调度,同一个进程中的各个线程共享内存/硬盘资源。进程是资源分配的基本单位,线程是调度执行的基本单位。

每个线程都是单独调度的,在调度过程中系统就不再考虑进程这样的概念了

线程特点:
①每个线程都可以独立地去CPU上调度执行
②同一个进程里的多个线程之间共用同一份内存空间和文件资源(导致这时创建线程的时候就不需要重新申请资源了,直接复用之前分配给进程的资源即可,省去了申请资源的开销,因为系统申请资源时会在内存中有一个遍历的过程,于是与创建进程相比创建线程的效率就更高了。刚开始创建第一个线程的时候相当于是和进程一起创建的,还是需要有一定的开销去申请资源(这个申请资源的开销记在进程上),后面再创建线程开销就省下了)
③线程能提高效率,能实现并发编程,同时开销更小
④增加线程的数目,能进一步提高效率
⑤线程不能无限制地增加,线程数量达到一定程度时,再进一步增加线程的数目,效率无法进一步提升,反而会因为要调度的线程太多使调度的开销过大,反而会降低程序的执行效率
⑥线程数目多了之后,容易产生冲突,称为“线程安全问题”(两个线程同时去访问同一个变量,比如平台只有一张票,A在平台上买票,此时平台还没来得及更新数据库的数据,B发现平台上还有票就再次买了票,然后平台更新数据库的数据,这导致一张票被卖了两次,这里A和B是同时买票)
⑦如果某个线程出现异常,如果没有妥善处理(比如用catch捕获),就容易导致整个进程都出现问题(崩溃),此时其它线程也随之消亡

多进程可以实现并发编程的效果,但是多进程编程模型有明显的缺点是进程太重量、效率不高(消耗较多时间在申请进程的资源上,因为系统申请进程资源时在内存中有一个遍历的过程),为了解决这个问题,引入“线程”(Thread),线程也叫“轻量级进程”,创建线程比创建进程更快,销毁线程比销毁进程更快,调度线程比调度进程更快。多线程也可以实现并发编程的效果。

二、进程和线程的区别

①进程包含线程,一个进程里面可以有一个线程也可以有多个线程
②进程和线程都是用来解决并发编程的问题的,但是线程比进程更轻量、高效
③线程比进程更轻量、高效的原因在于同一个进程里的线程之间共用同一份进程的内存和硬盘资源,创建线程时直接复用之前分配给进程的资源即可,省区了申请资源的开销(在代码上,进程之间通信需要借助一个公共空间来完成数据的交互,而线程之间因为共用同一份内存和硬盘资源所以可以直接访问对方的变量即可完成线程之间的数据交互)
④进程和进程之间是具有独立性的,一个进程挂了不会影响其它进程。同一个进程内的线程和线程之间是可能会相互影响的(比如“线程安全问题”和“线程出现异常问题”)
⑤进程是资源分配的基本单位,线程是调度执行的基本单位

相关文章:

进程和线程的联系与区别

文章目录 一、进程和线程的联系二、进程和线程的区别 一、进程和线程的联系 操作系统中可以有很多进程,每个进程都有自己独立的资源;一个进程中可以有很多线程,系统中的每个线程都能独立调度,同一个进程中的各个线程共享内存/硬盘…...

分支和循环语句(2)(C语言)

目录 do...while()循环 do语句的语法 do语句的特点 do while循环中的break和continue 练习 goto语句 do...while()循环 do语句的语法 do 循环语句; while(表达式); do语句的特点 循环至少执行一次,使用的场景有限,所以不是经常使用。 #inc…...

Flutter: A RenderFlex overflowed by 42 pixels on the bottom.

Flutter:渲染活动底部上方溢出了42个像素 Flutter 控件超出异常:A RenderFlex overflowed by 42 pixels on the bottom. 解决方案 1.Scaffold内添加 resizeToAvoidBottomInset 属性,缺点是软键盘下面的控件被挡住 Scaffold( resizeToAvoidBot…...

第三章,矩阵,07-用初等变换求逆矩阵、矩阵的LU分解

第三章,矩阵,07-用初等变换求逆矩阵、矩阵的LU分解 一个基本的方法求 A − 1 B A^{-1}B A−1BLU分解例1,求矩阵A的LU分解:例12,LU分解解线性方程组: 玩转线性代数(19)初等矩阵与初等变换的相关应用的笔记&a…...

STM32F429IGT6使用CubeMX配置SPI通信(W25Q256芯片)

1、硬件电路 需要系统性的看一下W25Q256芯片手册 2、设置RCC,选择高速外部时钟HSE,时钟设置为180MHz 3、配置SPI 4、生成工程配置 5、相关代码 #define sFLASH_ID 0XEF4019 // W25Q256#define SPI_FLASH_PageSize 256 #define SPI_FLASH_PerWritePageSize 256#def…...

C++11异步与通信之 packaged_task

概念简介 packaged_task 用于包装可调用目标(Callable)为一个对象,如lambda,普通函数,小括号重载等,用于异步调用。 其返回值或所抛异常被存储于能通过 std::future 对象访问的共享状态中,和promise类似。 将函数的调用与函数返…...

磁盘的管理

一、磁盘的分区 查看磁盘 lsblk fdisk -l 2、分区 没有e扩展,则都是主分区,已经有三个主分区了,剩下的全设置为扩展 查看分区结果: 二、格式化 三、挂载...

数据结构:完全二叉树的性质

完全二叉树的性质&#xff1a; 具有 n n n个结点的完全二叉树的深度为 [ l o g 2 n ] 1 ( [ x ] 表示不大于 x 的最大整数 ) [log_2n]1([x]表示不大于x的最大整数) [log2​n]1([x]表示不大于x的最大整数) 对于任意一个结点 &#xff08; 1 < i < n &#xff09; &…...

【数据结构】‘双向链表’冲冲冲

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …...

Linux 编译CEF源码详细记录

Linux CEF&#xff08;Chromium Embedded Framework&#xff09;源码下载编译 背景 由于CEF默认的二进制分发包不支持音视频播放&#xff0c;需要自行编译源码&#xff0c;将ffmpeg开关打开才能支持。这里介绍的是Linux平台下的CEF源码下载编译过程。 Windows平台参考&#…...

LeetCode 2810. Faulty Keyboard【模拟,双端队列,字符串】简单

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…...

两个数组的交集-C语言/Java

描述 给定两个数组 nums1 和 nums2 &#xff0c;返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序。&#xff08;1 < nums1.length, nums2.length < 1000&#xff0c;0 < nums1[i], nums2[i] < 1000&#xff09; 示例1 输入…...

Arduino+esp32学习笔记

学习目标&#xff1a; 使用Arduino配置好蓝牙或者wifi模块 学习使用python配置好蓝牙或者wifi模块 学习内容&#xff08;笔记&#xff09;&#xff1a; 一、 Arduino语法基础 Arduino语法是基于C的语法,C又是c基础上增加了面向对象思想等进阶语言。那就只记录没见过的。 单多…...

计算机网络-专业术语

计算机网络-专业术语 实体 实体:任何可发送或接收信息的硬件或软件进程 对等实体:收发双方相同层次中的实体 协议 控制两个对等实体进行逻辑通信的规则的集合 协议三要素 语法 定义所交换的信息的格式 是用户数据与控制信息的结构和格式 语义 定义收发双方所需要完成的操作…...

E. Maximum Monogonosity

You are given an array aa of length nn and an array bb of length nn. The cost of a segment [l,r][l,r], 1≤l≤r≤n1≤l≤r≤n, is defined as |bl−ar||br−al||bl−ar||br−al|. Recall that two segments [l1,r1][l1,r1], 1≤l1≤r1≤n1≤l1≤r1≤n, and [l2,r2][l2,…...

已解决Excel file format cannot be determined, you must specify an engine manually

问题 我使用以下语句时出现错误 data pd.read_excel(temp_inputc.csv, headerNone)出现错误&#xff1a; Excel file format cannot be determined, you must specify an engine manually有很多人说添加engine&#xff0c;但接下来会出现这个错误&#xff1a; File is not…...

Centos yum命令大全

1.使用YUM查找软件包 $ yum search python 2.列出所有可安装的软件包 $ yum list | grep python 3.列出所有可更新的软件包 $ yum list updates 4.列出所有已安装的软件包 $ yum list installed | grep python...

内网横向移动—ARP攻击图片捕捉数据劫持DNS劫持

内网横向移动—ARP攻击&图片捕捉&数据劫持&DNS劫持 1. ARP1.1. APR介绍1.1.1. ARP工作原理1.1.2. APR欺骗工作原理 1.2. 环境准备1.3. 适用场景 2. ARP断网攻击演示2.1. 使用kali进行演示2.1.1. nmap判断存活2.1.2. 安装工具2.1.3. 攻击Windows 10虚拟机2.1.3.1. 查…...

react之Hooks的介绍、useState与useEffect副作用的使用

react之Hooks的介绍、useState与useEffect副作用的使用 一、Hooks的基本介绍二、useState的使用2.1 简单使用2.2 数组结构简化2.3 状态的读取和修改2.3 组件的更新过程 三、useEffect的使用3.1 副作用介绍3.2 基本使用3.3 依赖3.4 不要对依赖项撒谎3.5 依赖项可以是空数组3.6 清…...

django——创建 Django 项目和 APP

2.创建 Django 项目和 APP 命令&#xff1a; 创建Django项目 django-admin startproject name 创建子应用 python manager.py startapp name 2.1 创建工程 在使用Flask框架时&#xff0c;项目工程目录的组织与创建是需要我们自己手动创建完成的。 在django中&#xff0c;…...

YOLO免配置训练包+智能标注工具:支持YOLOv5/v8/v10/v11一键训练,含易语言调用示例

温馨提示&#xff1a;文末有联系方式免环境部署&#xff0c;真正开箱即用 无需安装Python、CUDA、PyTorch等复杂依赖&#xff0c;本YOLO训练套件已封装完整运行时环境&#xff0c;Windows系统双击即可启动&#xff0c;彻底解决环境冲突与配置报错问。全版本YOLO模型支持&#x…...

国民技术 N32G031K8L7 LQFP-32 单片机

内核CPU 32位ARM Cortex-M0 内核&#xff0c;单周期硬件乘法指令 最高主频48MHz 加密存储器 - 高达64KByte片内Flash&#xff0c;支持加密存储&#xff0c;支持硬件ECC校验&#xff0c;10万次擦写次数&#xff0c;10年数据保持 一8KByte片内SRAM&#xff0c;支持硬件奇偶校验 低…...

JSTL 标签库详解与实战案例

目录 一、JSTL 基础认知 1. 什么是 JSTL&#xff1f; 2. JSTL 的 5 大标签库 二、JSTL 下载与使用 1. 依赖包下载 2. 基于Maven项目 3. 使用 三、JSTL 核心标签库实战 前置准备&#xff1a;JavaBean 实体类 1. MyUser.java&#xff08;用户实体&#xff09; 2. Prod…...

2026奇点智能技术大会核心成果发布(AI文档生成引擎v3.2正式开源)

第一章&#xff1a;2026奇点智能技术大会&#xff1a;AI接口文档生成 2026奇点智能技术大会(https://ml-summit.org) 在2026奇点智能技术大会上&#xff0c;AI驱动的接口文档自动生成技术成为核心议题之一。该技术依托多模态大模型对源码、注释、测试用例及通信日志的联合理解…...

PLC西门子杯比赛:三部十层电梯博图v15.1程序设计与WinCC界面展示

PLC西门子杯比赛&#xff0c;三部十层电梯博图v15.1程序&#xff0c;带wincc画面。凌晨三点的实验室里&#xff0c;咖啡杯在工控机旁边堆成了防御工事。我盯着博图V15.1里那三台虚拟电梯的运行轨迹&#xff0c;突然发现它们像极了三个不愿加班的打工人——总想着偷懒却又要假装…...

CnOpenData A股上市公司招股说明书公告数据

根据2007年1月30日证监会令第40号公布的《上市公司信息披露管理办法》&#xff0c;为规范发行人、上市公司及其他信息披露义务人的信息披露行为&#xff0c;上市公司应当及时、准确、完整地披露相关信息&#xff0c;包括招股说明书、募集说明书、上市公告书、定期报告和临时报告…...

5个高效方案:用NavMeshPlus实现Unity 2D智能导航的完整实践

5个高效方案&#xff1a;用NavMeshPlus实现Unity 2D智能导航的完整实践 【免费下载链接】NavMeshPlus Unity NavMesh 2D Pathfinding 项目地址: https://gitcode.com/gh_mirrors/na/NavMeshPlus NavMeshPlus作为Unity NavMesh系统的2D增强插件&#xff0c;为游戏开发者提…...

2026年数字IC设计紫光展锐笔试带答案解析

文章目录 一、试卷结构 二、单选题(共20题,每题2分,共40分) 三、多选题(共15题,每题2分,共30分。多选、少选、错选均不得分) 四、简答题(共3题,每题10分,共30分) 一、试卷结构 项目 说明 笔试岗位 数字IC设计工程师 / 芯片验证工程师 题型分布 单选题20题(每题2分…...

FanControl风扇控制终极指南:5分钟告别电脑噪音烦恼

FanControl风扇控制终极指南&#xff1a;5分钟告别电脑噪音烦恼 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/F…...

手把手教你用Keil5给51单片机编程:读取DHT11、SGP30等四种传感器数据

51单片机多传感器数据采集实战指南&#xff1a;从硬件连接到Keil5代码实现 在物联网和智能硬件开发领域&#xff0c;51单片机因其简单易用、成本低廉的特点&#xff0c;依然是许多初学者的首选平台。本文将带你完成一个完整的多传感器数据采集项目&#xff0c;使用STC89C52RC单…...