进程与线程
文章目录
- 什么是线程
- 线程与进程的关系
- 线程与进程的区别
什么是线程
上一篇文章中我们介绍了什么进程,我们把进程比作一个工厂,那么线程就是工厂中的流水线。引入进程的目的就是为了实现多个任务并发执行,但是如果频繁的创建销毁进程,资源消耗比较高,成本比较高,所以我们引入了线程,线程相比于进程更加轻量级。
什么是多进程,什么是多线程呢?我们举个例子来向大家说明:
现在有很多工作,需要找工厂完成工作,如果让一家工厂来完成任务效率很低,如何提高效率呢?
很多人就想到了找两家工厂一起完成效率不就高了嘛,这样的思想是使用多进程来完成工作,提高了效率但是多找了一个工厂加大了消耗,而且两个工厂之间并不能知道对方完成了多少活。
我们还可以,在一个工厂中多增加两条生产线,此时效率也提高了,同时并没有增加工厂,两条生产线在同一个工厂还能看见对方完成了多少活,这样的思想我们称为多线程。
线程与进程的关系
首先最重要的一点就是:进程包含线程,一个进程中可以有一个线程,或者多个线程,每个线程之间都是一个独立的执行流,多个线程之间,也是并发运行的,他们可以在多个CPU上同时运行,也可以在一个CPU上通过快速切换进行运行。
进程与线程都是为了可以并发的执行任务,只不过使用的场景并不相同:
同一个进程,内部想要完成多组任务,此时使用多线程,例如我们打开微信,可以聊天可以支付等。(更高效,节省资源,但是一个线程挂了,可能带走整个进程)
多个进程之间完成多组任务,此时就是多进程了例如我们同时打开QQ和微信。(多进程的隔离性更高,互不影响,一个进程挂了并不会带走其他进程)
一个进程可能包含多个线程,那这些线程所消耗的资源加在一起不会超过两个进程嘛?其实一个进程中的这些线程共用一份系统资源,只有在进程启动时,创建第一个线程的时候,需要申请系统资源,第一个线程创建完毕之后,之后的进程不会在申请资源了。
线程与进程的区别
我们总结一下进程与线程的区别:
1、首先要明确的是,进程包含线程。
2、进程有自己的独立的内存空间和文件描述符表,而同一个进程中的多个线程之间,共享一份地址空间和文件描述符表。
3、进程是操作系统资源分配的基本单位,而线程是操作系统调度执行的基本单位。
4、进程之间具有独立性,一个进程挂了不会带走其他进程,而同一个进程中的多个线程之间,一个线程挂了可能会把整个程序带走,影响到其他线程。
相关文章:
进程与线程
文章目录什么是线程线程与进程的关系线程与进程的区别什么是线程 上一篇文章中我们介绍了什么进程,我们把进程比作一个工厂,那么线程就是工厂中的流水线。引入进程的目的就是为了实现多个任务并发执行,但是如果频繁的创建销毁进程࿰…...
骑友,怎么挑选适合自己的赛事
骑友,怎么挑选适合自己的赛事一、从场地、路况、天气,各个方面了解赛事的要求。二、看完赛事,要知道自己适合参加什么样的比赛。三、通过比赛成绩,对比自己的实力。四、综合考虑自己的经济能力,根据自己的经济能力选择…...
【Java 数据结构与算法】-遍历Map和Set的方式
作者:学Java的冬瓜 博客主页:☀冬瓜的主页🌙 专栏:【Java 数据结构与算法】 文章目录一、遍历Map法一 先获取Map集合的全部key的set集合,遍历map的key的Set集合法二 把map的key和value打包成Set的key后的这个Set集合法…...
组件、套件、 中间件、插件
组件、套件、 中间件、插件 组件 位于框架最底层,是由重复的代码提取出来合并而成。组件的本质,是一件产品,独立性很强,组件的核心,是复用,与其它功能又有强依赖关系。 模块 在中台产品和非中台产品中&…...
自动化工具 pytest 内核测试平台落地初体验
测试平台,有人说它鸡肋,有人说它有用,有人说它轮子,众说纷纭,不如从自身出发,考虑是否要做测试平台: 第 1 阶段,用 Pythonrequests 写接口自动化。 第 2 阶段,选择 unit…...
Python 自动化指南(繁琐工作自动化)第二版:四、列表
原文:https://automatetheboringstuff.com/2e/chapter4/ 在开始认真编写程序之前,您需要理解的另一个主题是列表数据类型及其表亲元组。列表和元组可以包含多个值,这使得编写处理大量数据的程序更加容易。由于列表本身可以包含其他列表&#…...
大数据领域的发展及其对现实世界的价值
大数据已经成为全球各行业领域不可或缺的一部分,并且其应用不断涌现。尽管很多人最初对“大数据”这一术语表示怀疑和不信任,但大数据技术已经确立了稳定的发展方向。根据调研机构的预测,到2027年,全球大数据市场规模将达到1090亿…...
几种常见的架构模式
本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址 如果访问不了Github,…...
flutter安装各种问题汇总
C:\Users\Administrator>flutter doctor -v Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source! [√] Flutter (Channel stable, 3.7.0, on Microsoft Windows [版本 10.0.19044.1826], locale zh-CN) • Flutte…...
网络传输层
目录传输层再谈端口号端口号范围划分认识知名端口号netstatpidofUDP协议UDP协议端格式UDP的特点面向数据报UDP的缓冲区UDP使用注意事项使用udp协议 的应用层协议其它TCP协议TCP协议段格式如何理解链接如何理解三次握手如何理解四次挥手概念TIME_WAIT/CLOSE_WAITTCP策略确认应答…...
linux内核启动分析(二)
文章目录1. set_task_stack_end_magic2.smp_setup_processor_id3. debug_objects_early_init4. cgroup_init_early4.1 init_cgroup_root4.1.1 init_cgroup_housekeeping4.2 cgroup_init_subsys5. local_irq_disable5.1 raw_irqs_disabled5.2 raw_local_irq_disable5.3 trace_ha…...
『EasyNotice』.NET开源消息通知组件——快速实现邮件/钉钉告警通知
📣读完这篇文章里你能收获到 傻瓜式扩展方法直接使用如何通过EasyNotice快速实现钉钉/邮件的通知发送感谢点赞收藏,避免下次找不到~ 文章目录一、EasyNotice1. 功能介绍2. 源码地址二、项目接入1. 发送邮件通知Step 1 : 安装包,通过Nuget安装…...
JVM垃圾回收算法
垃圾标记阶段 对象存活判断:在堆里存放着几乎所有的Java对象实例,在GC执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象。只有被标记为己经死亡的对象,GC才会在执行垃圾回收时,…...
怎么看待ChatGPT封号这件事呢?
最近的ChatGPT大量封号,刷爆了全网,我的两个个人账号被封禁了,不知道大家最近有没有遇到相关的报错信息,要么就是检查你当前的浏览器配置,最后来一个access denied,要么直接就给你来一个当前的国家不支持。…...
八、交换技术原理
(一)交换机 1、交换机介绍 一种用于电(光)信号转发的网络设备,可以为接入交换机的任意两个网络节点提供独享的电信号通路。 工作于第二层的叫交换机,工作于第三层的叫第三层交换机,最常见的是…...
什么是DHCP?DHCP有什么用?(中科三方)
在IP网络中,每一个连接的设备都需要分配一个唯一的IP地址,才能实现和Internet上其他设备的互联。在一些终端规模较大的网络中,需要为每一个主机手工配置IP地址,以避免IP地址的重复,如果主机发生变更,还要去…...
算法设计-二分
一、有序和单调 二分本质上是一种更加智能的搜索状态空间的方式,他需要状态空间的状态呈现一种“有序的一维数组”的形式,然后再进行搜索。所以一开始的排序是无法避免的。 因为二分的写法问题,所以应当怎样排序也是有一定讲究的&…...
隧道技术基础
隧道技术基础基本概念端口转发应用层代理基本概念 攻击者通过边界主机进入内网,往往会利用它当跳板进行横向渗透,但现在的内部网络大多部署了很多安全设备,网络结构错综复杂,对于某些系统的访问会受到各种阻挠,这就需…...
卡尔曼滤波浅析
文章目录前言任务状态预测外部影响因素外部不确定性状态更新利用测量进一步修正状态合并两个高斯分布公式汇总图形化解释总结(readme)references前言 Kalman Filter算法,是一种递推预测滤波算法,算法中涉及到滤波,也涉…...
Eolink Apikit 创建/生成 API 文档
在 API 研发管理产品中,几乎所有的协作工作都是围绕着 API 文档进行的。 我们在接触了大量的客户后发现,采用 文档驱动 的协作模式会比先开发、后维护文档的方式更好,团队协作效率和产品质量都能得到提高。因此我们建议您尝试基于文档来进行工…...
Python农业物联网开发正在淘汰Django!FastAPI+Redis Stream+TimescaleDB构建毫秒级响应灌溉调度中枢(压测QPS达42,800)
第一章:Python农业物联网开发Python凭借其简洁语法、丰富生态和强大的硬件交互能力,已成为农业物联网(Agri-IoT)系统开发的主流语言。从土壤温湿度传感器数据采集到云端可视化决策支持,Python贯穿设备端、网关层与应用…...
UE后期处理材质实战:从黑白蒙版到卡通渲染的进阶应用
1. 黑白蒙版遮罩的底层原理与应用 在UE4后期处理材质中,黑白蒙版遮罩是最基础也最实用的功能之一。我第一次接触这个功能时,被它强大的选择性处理能力惊艳到了——它能像手术刀一样精准地分离出场景中的特定物体。 核心原理其实很简单:通过Sc…...
别再手动改配置了!用Docker Compose一键部署带Web管理界面的Pulsar独立集群
告别手动配置:Docker Compose全自动部署Pulsar集群与Web管理平台 每次搭建开发环境都要重复输入十几条Docker命令?配置文件散落在各个角落难以维护?今天我要分享的这套方案,将彻底改变你部署消息队列的方式。只需一个YAML文件&…...
Django CORS Headers 终极指南:10个企业级跨域架构设计技巧
Django CORS Headers 终极指南:10个企业级跨域架构设计技巧 【免费下载链接】django-cors-headers Django app for handling the server headers required for Cross-Origin Resource Sharing (CORS) 项目地址: https://gitcode.com/gh_mirrors/dj/django-cors-he…...
Pixel Dream Workshop 在电商领域的应用:一键生成商品场景图
Pixel Dream Workshop 在电商领域的应用:一键生成商品场景图 1. 电商商品图的痛点与机遇 电商行业有个公开的秘密:商品图片的制作成本往往比想象中高得多。我们曾合作过的一家服装电商,每月仅模特拍摄费用就超过20万元,这还不包…...
三相永磁同步电机FOC控制实战:从霍尔传感器配置到SVPWM调参避坑指南
三相永磁同步电机FOC控制实战:从霍尔传感器配置到SVPWM调参避坑指南 当你在深夜的实验室里盯着示波器上跳动的波形,试图让一台三相永磁同步电机平稳启动时,是否经历过这样的场景:明明按照手册配置了所有参数,电机却像喝…...
告别盲目点优化!手把手教你用Zemax 2024构建‘先结构后像差’的高效优化工作流
告别盲目点优化!手把手教你用Zemax 2024构建‘先结构后像差’的高效优化工作流 在光学设计领域,Zemax作为行业标杆工具,其优化功能强大却也让许多设计师陷入"不断点击优化按钮"的困境。真正高效的设计不在于反复试错,而…...
别再只盯着运放了:用跨阻放大器搞定光电传感器信号调理的完整指南
光电传感器信号调理实战:跨阻放大器设计与避坑指南 当你在昏暗的灯光下测试光电传感器时,是否曾被微弱的电流信号折磨得焦头烂额?作为嵌入式工程师,我曾在凌晨三点的实验室里,面对闪烁不定的示波器波形,才…...
HLAE高效创作指南:释放Source引擎电影级视觉潜能
HLAE高效创作指南:释放Source引擎电影级视觉潜能 【免费下载链接】advancedfx Half-Life Advanced Effects (HLAE) is a tool to enrich Source (mainly CS:GO) engine based movie making. 项目地址: https://gitcode.com/gh_mirrors/ad/advancedfx 一、核心…...
若依框架下,如何让JimuReport积木报表乖乖认你的登录状态?(附完整前后端代码)
若依框架与JimuReport深度整合:实现无缝登录状态管理的全链路实践 在当今企业级应用开发中,权限控制与单点登录已成为基础需求。当我们将若依(RuoYi)这一流行后台管理系统框架与JimuReport报表工具集成时,如何确保两者间的登录状态无缝衔接&a…...

