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

【多线程初阶篇¹】线程理解| 线程和进程的区别

目录

一、认识线程Thread

1.为啥引入线程

 2.线程理解

🔥 3.面试题:线程和进程的区别


一、认识线程Thread

1.为啥引入线程

为了解决进程太重量的问题

解释(为什么说线程比进程更轻量?/为什么说线程创建/销毁开销比进程小?)

要想充分利用CPU,如果单单靠进程,创建和消耗开销大,但是创建线程,资源早就分配好了,所以就省去了创建和销毁的开销

 2.线程理解

(1)可以理解为进程的一部分,一个进程可以包含一个/多个线程(一个PCB描述的其实就是一个线程)

(2)同一个进程中的若干个线程之间,是共用相同的内存资源和文件资源的,但是每个线程都是独立在CPU上调度执行的(线程是系统调度执行的基本单位

(3)进程和线程的效率差不多,但是进程的消耗成本高.

举例理解: 

  • 这样效率就比较低

  • 引入进程,(多一个房间和桌子,一个桌子50只鸡)

  • 引入线程(多个滑稽在一起吃)

  • Q1:能不能无限引入进程?

    • 线程调度开销明显,效率降低
  • Q2:线程数量合适,还会不会存在问题
    • 还是存在线程竞争,线程安全问题
    • 如果一个线程抛出异常,就会使整个进程退出(其他线程也就没了)

🔥 3.面试题:线程和进程的区别

  • 线程为进程的一部分,线程是系统调度执行的基本单位,进程是系统分配资源的基本单位(基本单位)
  • 进程存在太重量的问题,创建和销毁的开销大(开销)
  • 线程之间切换更快,因为线程共享相同的上下文和资源(速度)
  • 进程有独立的空间和资源,而线程共享同一进程的空间和资源(资源和空间)
  • 进程相对独立,一个进程的崩溃不会影响其他进程,而线程会影响(独立性)

相关文章:

【多线程初阶篇¹】线程理解| 线程和进程的区别

目录 一、认识线程Thread 1.为啥引入线程 2.线程理解 🔥 3.面试题:线程和进程的区别 一、认识线程Thread 1.为啥引入线程 为了解决进程太重量的问题 解释(为什么说线程比进程更轻量?/为什么说线程创建/销毁开销比进程小&#…...

wireshark排除私接小路由

1.wireshark打开,发现了可疑地址,合法的地址段DHCP是192.168.100.0段的,打开后查看发现可疑地址段,分别是,192.168.0.1 192.168.1.174 192.168.1.1。查找到它对应的MAC地址。 ip.src192.168.1.1 2.通过show fdb p…...

Docker 从入门到精通

文章目录 Ubuntu 安装Docker步骤前言1. 进入Docker官网,进入开发者页面2. 选择适合自己的安装方式3. 安装 Docker1.更新系统包,安装插件,创建秘钥及目录2.安装 Docker 软件包3.设置开机启动4.通过运行 hello-world 镜像验证安装是否成功 常见…...

uni app 写的 小游戏,文字拼图?文字拼写?不知道叫啥

从下方的偏旁部首中选在1--3个组成上面文章中的文字&#xff0c;完成的文字标红 不喜勿喷 《满江红》 其中用到了两个文件 strdata.json parameters.json 这两个文件太大 放到资源中了 资源文件 <template><view class"wenzi_page_main"><view c…...

Qt监控系统远程网络登录/请求设备列表/服务器查看实时流/回放视频/验证码请求

一、前言说明 这几个功能是近期定制的功能&#xff0c;也非常具有代表性&#xff0c;核心就是之前登录和设备信息都是在本地&#xff0c;存放在数据库中&#xff0c;数据库可以是本地或者远程的&#xff0c;现在需要改成通过网络API请求的方式&#xff0c;现在很多的服务器很强…...

案例研究:UML用例图中的结账系统

在软件工程和系统分析中&#xff0c;统一建模语言&#xff08;UML&#xff09;用例图是一种强有力的工具&#xff0c;用于描述系统与其用户之间的交互。本文将通过一个具体的案例研究&#xff0c;详细解释UML用例图的关键概念&#xff0c;并说明其在设计结账系统中的应用。 用…...

二叉树的层次遍历

二叉树的层次遍历 描述 给你一个二叉树&#xff0c;请你返回其按 层次遍历 得到的节点值&#xff08;即逐层地&#xff0c;从做到右访问所有节点&#xff09; 代码 通过两个数组来交替打印 class Solution(object):def levelOrder(self, root):if root None:return []sta…...

docker推送本地仓库报错

(base) rootainode3:~# dp 192.168.2.186:5000/bert-deepspeed:latest The push refers to repository [192.168.2.186:5000/bert-deepspeed] Get "http://192.168.2.186:5000/v2/": dial tcp 192.168.2.186:5000: connect: connection refused排查思路如下&#xff…...

Python中的asyncio:高效的异步编程模型

随着互联网应用的快速发展&#xff0c;程序的响应性和处理效率成为衡量系统性能的重要指标。传统的同步编程模型在面对高并发和IO密集型任务时&#xff0c;常常显得捉襟见肘&#xff0c;难以满足现代应用的需求。Python的asyncio库作为一种高效的异步编程模型&#xff0c;为开发…...

Oopsie【hack the box】

Oopsie 解题流程 文件上传 首先开启机器后&#xff0c;我们先使用 nmap -sC -SV来扫描一下IP地址&#xff1a; -sC&#xff1a;使用 Nmap 的默认脚本扫描&#xff08;通常是 NSE 脚本&#xff0c;Nmap Scripting Engine&#xff09;。这个选项会自动执行一系列常见的脚本&am…...

详细介绍 React 中 i18n 的完整使用流程:

接下来按照步骤&#xff0c;让我们来完成&#xff01; // 1. 首先安装必要的依赖 // npm install i18next react-i18next i18next-http-backend i18next-browser-languagedetector// 2. 创建 i18n 配置文件 (src/i18n/index.js) import i18n from i18next import { initReactI…...

部署:上传项目代码 配置数据库

一、上传代码 1、使用git 可以使用Git Clone。使用前&#xff0c;在服务器上也要创建秘钥对。这里的密钥对&#xff0c;是专门用来读取Git仓库的。 在宝塔上&#xff0c;点击终端。进来后&#xff0c;运行 ssh-keygen还是一路回车&#xff0c;密钥对就建好了。 接着用命令…...

C++—9、如何在Microsoft Visual Studio中调试C++

本文通过实例操作来介绍 Visual Studio 调试器的功能。调试器在运行过程中可提供许多方法让你查看代码的情况。 你可以逐步浏览代码、查看变量中存储的值、设置对变量的监视以查看值何时改变、检查代码的执行路径、查看代码分支是否正在运行等等。本实例主要是设置断点及查看内…...

11. C 语言 作用域与变量使用技巧

本章目录: 前言一、作用域的分类局部变量示例&#xff1a; 全局变量示例&#xff1a;示例&#xff1a; 形式参数示例&#xff1a; 二、作用域的细节与常见误区块级作用域示例&#xff1a; 静态变量与全局变量的对比示例&#xff1a; 未初始化变量的影响示例&#xff1a; 三、实…...

【机器学习案列】学生抑郁可视化及预测分析

&#x1f9d1; 博主简介&#xff1a;曾任某智慧城市类企业算法总监&#xff0c;目前在美国市场的物流公司从事高级算法工程师一职&#xff0c;深耕人工智能领域&#xff0c;精通python数据挖掘、可视化、机器学习等&#xff0c;发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…...

Perl语言的循环实现

Perl语言的循环实现 引言 Perl是一种强大的脚本语言&#xff0c;以其灵活的语法和强大的文本处理能力著称。无论是在系统管理、网络编程&#xff0c;还是在Web应用开发中&#xff0c;Perl都广泛应用于各种领域。循环是编程语言中一个极其重要的概念&#xff0c;它允许程序重复…...

SpringBoot项目——使用Spark对爬虫爬取下的数据进行清洗

随着互联网信息呈爆炸式增长&#xff0c;爬虫技术被广泛用于从海量网页中抓取有价值的数据。然而&#xff0c;爬取到的数据往往存在格式不规范、重复、噪声等诸多问题&#xff0c;需要高效的数据清洗流程来保障数据质量&#xff0c;Spark 在其中发挥了关键作用。 什么是Spark …...

分布式锁 Redis vs etcd

为什么要实现分布式锁?为什么需要分布式锁,分布式锁的作用是什么,哪些场景会使用到分布式锁?分布式锁的实现方式有哪些分布式锁的核心原理是什么 如何实现分布式锁redis(自旋锁版本)etcd 的分布式锁(互斥锁(信号控制)版本) 分布式锁对比redis vs etcd 总结 为什么要实现分布式…...

《深度剖析:开源与闭源模型,AI舞台上的不同角色》

在人工智能蓬勃发展的当下&#xff0c;模型的选择如同为一场战役挑选合适的武器&#xff0c;至关重要。开源模型与闭源模型作为AI领域的两大阵营&#xff0c;在性能和应用场景上展现出显著差异&#xff0c;深刻影响着开发者、企业以及整个行业的走向。 性能差异&#xff1a;实…...

Angular结合C#

在 Angular 2 及以上版本与 C#结合使用 REST API 的示例中&#xff0c;我们将分别展示前端 Angular 服务和后端 C# Web API 的实现。 一、前端&#xff1a;Angular 服务 生成 Angular 服务 使用 Angular CLI 生成一个新的服务&#xff0c;例如user.service.ts&#xff1a; ng…...

像素极光入门指南:像插入游戏卡一样加载模型,快速生成梦幻像素风景

像素极光入门指南&#xff1a;像插入游戏卡一样加载模型&#xff0c;快速生成梦幻像素风景 1. 认识像素极光创意引擎 像素极光(Pixel Aurora Engine)是一款专为像素艺术创作设计的AI绘图工作站。它采用复古游戏机风格界面&#xff0c;让AI绘画变得像玩游戏一样简单有趣。与传…...

像素幻梦·创意工坊实操手册:批量生成任务队列管理与异步导出机制

像素幻梦创意工坊实操手册&#xff1a;批量生成任务队列管理与异步导出机制 1. 认识像素幻梦创意工坊 Pixel Dream Workshop&#xff08;像素幻梦创意工坊&#xff09;是一款基于FLUX.1-dev扩散模型的像素艺术生成工具。它采用16-bit像素风格的现代化界面设计&#xff0c;为创…...

STM32F103C8T6小车巡线实战:从串口指令到灰度传感器闭环控制的完整流程

STM32F103C8T6智能小车巡线系统开发全攻略 从零搭建智能巡线小车的核心要素 第一次尝试用STM32开发板制作巡线小车时&#xff0c;我遇到了不少令人头疼的问题——传感器数据不稳定、电机响应延迟、PID参数调不好。经过多次失败和调试&#xff0c;终于总结出一套行之有效的开发流…...

零代码建站!免费源码网快速上手

在数字化浪潮席卷各行各业的今天&#xff0c;拥有一个专业网站已成为个人展示、企业宣传、产品推广的标配。然而&#xff0c;传统网站开发需要专业的技术团队、高昂的开发成本和漫长的建设周期&#xff0c;这让许多初创企业、个人站长望而却步。幸运的是&#xff0c;随着"…...

AI设计抗体,成功率低怎么办?从David Baker新论文看RFdiffusion的三大局限与未来优化方向

AI抗体设计的三大技术瓶颈与突破路径&#xff1a;从RFdiffusion的实践启示 抗体药物市场正以惊人的速度扩张&#xff0c;预计2025年将达到4450亿美元规模。在这个充满机遇的领域&#xff0c;AI技术正在改写传统抗体开发的游戏规则。David Baker团队最新发表在bioRxiv的研究成果…...

策略模式:灵活切换算法的艺术,C++多态。

策略模式概述 策略模式是一种行为设计模式&#xff0c;允许在运行时选择算法的行为。它将算法封装成独立的类&#xff0c;使得它们可以互相替换&#xff0c;而不会影响客户端代码。策略模式的核心思想是将算法的定义与使用分离&#xff0c;增强系统的灵活性和可扩展性。 策略模…...

嵌入式开发中全局变量的优化实践与替代方案

1. 嵌入式开发中的全局变量困境作为一名在嵌入式领域摸爬滚打多年的工程师&#xff0c;我见过太多因为滥用全局变量而陷入维护噩梦的项目。记得刚入行时接手过一个智能家居控制器的代码库&#xff0c;打开项目一看&#xff0c;光是extern声明的全局变量就有200多个&#xff0c;…...

快速掌握QQ空间历史说说备份:GetQzonehistory完整使用教程

快速掌握QQ空间历史说说备份&#xff1a;GetQzonehistory完整使用教程 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾经担心QQ空间里的珍贵记忆会随着时间流逝而消失&#xff…...

面向商业航天的高可靠电机控制系统:从环境约束到芯片实现

摘要商业航天已成为全球航天产业高质量发展的核心增长极&#xff0c;电机控制系统作为运载火箭、卫星平台、空间载荷与在轨服务装备的关键执行机构&#xff0c;其在轨可靠性、控制精度与环境适应性直接决定航天任务成败。本文系统梳理商业航天电机控制领域的技术演进、典型负载…...

RStudio Server卡在‘R启动慢’?别慌,手把手教你清理session文件恢复访问

RStudio Server启动缓慢的深度排查与解决方案 当你正赶着提交分析报告&#xff0c;RStudio Server却卡在"R is taking longer to start than usual"的提示界面&#xff0c;那种焦虑感数据工作者都懂。这不是简单的等待问题&#xff0c;而是系统在尝试恢复一个可能已经…...