线程和进程 / 进程和线程的区别和联系

news2025/1/24 17:59:14

💖 欢迎来阅读子豪的博客(JavaEE篇 🤴)
👉 有什么宝贵的意见或建议可以在留言区留言
💻 欢迎 素质三连 点赞关注 收藏
🧑‍🚀码云仓库:补集王子的代码仓库
在这里插入图片描述
不要偷走我小火车哦~ ~ ~

目录🍔🍕🍟🌭🍿🥓🍞🥐

  • 💻进程(process)
    • 🎃进程的特点
    • 📢进程跟程序不一样
    • 🎯进程状态
  • 📠线程(Thread)
    • 🔦线程的特点
  • 🚢进程 VS 线程
    • 🛫区别
        • 💡Tips:堆和方法区
      • 🧧多进程和多线程区别

💻进程(process)

每个应用程序运行于现代操作系统之上时,操作系统会提供一种抽象,好像系统上只有这个程序在运行,所有的硬件资源都被这个程序在使用。这种假象是通过抽象了一个进程的概念来完成的,进程可以说是计算机科学中最重要和最成功的概念之一.
简单来说进程指:在内存中运行的应用程序
进程是操作系统进行资源分配的最小最基本的单位

🎃进程的特点

进程中的一个执行任务(控制单元),负责当前进程中程序的执行。

如下图 IDEA和Edge就是进程
在这里插入图片描述

📢进程跟程序不一样

程序(Program)就是一组指令以及这组指令要处理的数据。狭义上来说,程序通常表现为一组文件

程序 = 指令 + 指令要处理的数据。

进程VS程序:

· 程序是在一个静态磁盘上的一个可执行文件。

· 进程是将可执行文件加载到系统中。加载就是将信息放在内存中,分配一些资源,并且执行程序中所有指令

内容主要有:

  • 进程编号 PID:进程的身份标识

  • 执行优先级

  • 上下文:保存本次执行状态,以便下次继续执行,这个过程就是一个上下文。

  • 内存地址

  • 进程的状态

🎯进程状态

①新建状态(NEW) ②就绪状态 ③运行状态 ④阻塞状态 ⑤销毁状态

在这里插入图片描述

📠线程(Thread)

一个线程就是一个 “执行流”. 每个线程之间都可以按照顺讯执行自己的代码. 多个线程之间 “同时” 执行着多份代码.

( ̄︶ ̄)↗ 多线程提高CPU使用率

线程是操作系统能够进行运算调度的最小单元。它被包含在进程中,是进程中实际运行的单位。一个进程中可以并发多个线程,每个线程执行不同的任务 。

一个线程 一辈子只能start一次**<( ̄︶ ̄)↗[GO!]**

在这里插入图片描述
系统在产生一个线程,或是在各个线程之间作切换工作时,负担要比进程小得多,也正因为如此,线程也被称为"轻量级进程"

🔦线程的特点

(1)"轻量"易于调度。

(2)提高并发性。通过线程可方便有效地实现并发性。进程可创建多个线程来执行同一程序的不同部分。

(3)开销少。创建线程比创建进程要快,所需开销很少。

(4)利于充分发挥多处理器的功能。通过创建多线程进程,每个线程在一个处理器上运行,从而实现应用程序的并发性,使每个处理器都得到充分运行。(并发编程的核心!!!)

🚢进程 VS 线程

线程是进程的子任务,一个进程至少有一个线程,一个进程可以运行多个线程,多个线程可共享数据。进程中包含了线程,线程属于进程。集合与元素的关系

🛫区别

  1. 根本区别:进程是操作系统进行资源分配的最小单元,线程是操作系统进行运算调度的最小单元。

  2. 开销不同:进程的创建、销毁和切换的开销都远大于线程。每个进程都有独立的代码和数据空间(程序上下文,保存本次的执行状态,以便下次执行。),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。

  3. 拥有资源不同:每个进程有自己的内存和资源,一个进程中的线程会共享这些内存和资源。如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线(线程)共同完成的,同类的多个线程共享进程的堆和方法区资源,但每个线程有自己的程序计数器、虚拟机栈和本地方法栈,所以系统在产生一个线程,或是在各个线程之间作切换工作时,负担要比进程小得多。

  4. 内存分配:同一进程的线程共享本进程的地址空间和资源,而进程之间的地址空间和资源是相互独立的

  5. 控制和影响能力不同:子进程无法影响父进程,而子线程可以影响父线程,如果主线程发生异常会影响其所在进程和子线程。

  6. CPU利用率不同:进程的CPU利用率较低,因为上下文切换开销较大,而线程的CPU的利用率较高,上下文的切换速度快。

  7. 操纵者不同:进程的操纵者一般是操作系统,线程的操纵者一般是编程人员。

  8. 执行过程:每个独立的进程有程序运行的入口、顺序执行序列和程序出口。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制,两者均可并发执行

💡Tips:堆和方法区

堆和方法区是所有线程共享的资源,其中堆是进程中最大的一块内存,主要用于存放新创建的对象 (所有对象都在这里分配内存),方法区主要用于存放已被加载的类信息、常量、静态变量、即时编译器编译后的代码等数据线程与进程不同的是同类的多个线程共享进程的堆和方法区资源

🧧多进程和多线程区别

多进程:操作系统中同时运行的多个程序,提高CPU使用率

多线程:在同一个进程中同时运行的多个任务

一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都挂掉。所以多进程要比多线程健壮。

多线程程序可以同时运行多个线程,但是程序运行的结果发现,每一次结果都不一致。 因为多线程存在一个特性:随机性。造成随机性的原因:CPU在瞬间不断切换去处理各个线程而导致的,可以理解成多个线程在抢CPU资源。(抢占式执行也是并发编程出错的罪魁祸首!!!)

在这里插入图片描述

多线程并不能提高运行速度,但可以提高运行效率,让CPU的使用率更高。但是如果多线程有安全问题或出现频繁的上下文切换时,运算速度可能反而更低。

虽然多进程也能实现并发编程,但是线程比进程更轻量

看到这里咯,点个**关注**再走!

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/105077.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

飞宇医药冲刺创业板:年营收4.56亿 拟募资4.38亿

雷递网 雷建平 12月20日江苏飞宇医药科技股份有限公司&#xff08;简称&#xff1a;“飞宇医药”&#xff09;日前递交招股书&#xff0c;准备在深交所创业板上市。飞宇医药计划募资4.38亿元&#xff0c;其中&#xff0c;1.79亿元用于年产6000吨侧链及6,000吨酰氯扩产项目&…

QT Qmake笔记

文章目录概述QT修改样式qmake概述pro文件常见配置项库引用和库路径指定QT创建动态库和使用&#xff08;重要&#xff09;小例子写动态库用动态库参考资料附录概述 本文记录一些学习QT过程中的笔记。 QT修改样式 styleSheet&#xff1a; background-image:url("/home/o…

大学生转行,毕业一年半,她是如何从工地走向互联网的?

如果专业与工作不匹配&#xff1f;如果觉得现有工作不适合自己&#xff1f;如果想转行&#xff1f;可以看一下她的成长故事。 领英18年数据显示&#xff0c;职场人第一份工作在职时间显著缩短&#xff0c;70后平均超过4年换一次工作&#xff0c;80后是3年半&#xff0c;90后是…

Bitmap64为什么比bitmap32慢

https://www.bilibili.com/video/BV1vU4y1q7KR/?spm_id_from333.788&vd_sourcefa36a95b3c3fa4f32dd400f8cabddeaf 原因跟 RoaringBitmap64 的实现有关&#xff0c;RoaringBitmap64 是由一系列 RoaringBitmap32 表示。实现方式有很多种&#xff0c;一种比较通用的做法用 ma…

【MyBatis】MyBatis Plus的使用

1.Mybatis-Plus 1.1 简介 MyBatis-Plus 是一个 Mybatis 增强版工具&#xff0c;在 MyBatis 上扩充了其他功能没有改变其基本功能&#xff0c;为了简化开发提交效率而存在。 官网文档地址&#xff1a;   https://mp.baomidou.com/guide/ MyBatis-Plus 特性&#xff1a;  …

非科班出身转行IT难吗?好找工作吗?

大家都知道&#xff0c;IT行业是出了名的高薪行业&#xff0c;很多传统行业/专业的小伙伴由于薪资低、就业机会少而有了想转行IT的想法。 他们通常有以下几个问题&#xff1a; 非计算机专业0基础能学会技术吗&#xff1f;非计算机专业如何转行到IT行业&#xff1f;非计算机专…

记录--可视化大屏-用threejs撸一个3d中国地图

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 不想看繁琐步骤的&#xff0c;可以直接去github下载项目&#xff0c;如果可以顺便来个star哈哈 本项目使用vue-cli创建&#xff0c;但不影响使用&#xff0c;主要绘制都已封装成类 1、使用geoJson绘制…

Java并发系列源码分析(四)--StampedLock

简介 ReentrantReadWriteLock是一个悲观的可重入的读写锁,而StampedLock既支持悲观锁也支持乐观锁但不支持锁的重入, 在ReentrantReadWriteLock下如果多个线程同时获取读锁的时候,获取写锁的线程就会被挂起进行等待,在StampedLock乐观锁下如果有线程加了写锁,其它读线程可以获…

英语不好能不能学好python?试试我的方法就知道了

这是本文的目录前言一、交互环境与print输出&#xff08;python编程常用单词&#xff09;二、字符串操作&#xff08;python编程常用单词&#xff09;三、重复\替换\转换\原始字符串&#xff08;python编程常用单词&#xff09;四、去除\查询\计数&#xff08;python编程常用单…

JavaWeb之Servelt学习01

目录 1.Servlet 1.1快速入门 1.2Servlet 执行原理 1.3Servlet执行方法 1.3.1Servlet中的生命周期方法 1.4注解配置 1.5.Servlet体系结构 1.6Servlet相关配置 1.Servlet 概念&#xff1a;运行在服务端的小程序 Servlet就是一个接口&#xff0c;定义了java类被浏览器访问到…

高速高精度半导体运动台设计(二)

高速高精运动平台的性能不仅与运动控制器、伺服驱动相关&#xff0c;也与电机本身的性能密切相关。如图 5-2 所示的运动平台采用了雅科贝思的直线电机&#xff0c;直接驱动负载&#xff0c;刚性高&#xff0c;响应快&#xff0c;同时选用了高性能多轴运动控制卡和 GTHD 系列高性…

【Java 数据结构】树和二叉树

篮球哥温馨提示&#xff1a;编程的同时不要忘记锻炼哦&#xff01;一棵倒立过来的树. 目录 1、什么是树&#xff1f; 1.1 简单认识树 1.2 树的概念 1.3 树的表示形式 2、二叉树 2.1 二叉树的概念 2.2 特殊的二叉树 2.3 二叉树的性质 2.4 二叉树性质相关习题 3、实…

uniapp 多商品sku组件v3版本

如果您正在寻找一款v3版本的多商品sku组件的话&#xff0c;那我想这款组件刚好可以满足各位。 先来简单看一眼效果图: 看起来是不是还不错&#xff0c;如果我告诉你还可以设置主题色会不会显得更加惊艳些&#xff0c;只需要按照数组格式将rgb的颜色传递给组件&#xff0c;…

智慧医疗中人工智能的7大应用|数据标注

从药物研发到预测肾脏疾病&#xff0c;人工智能在智慧医疗领域应用广泛。 人工智能在许多医学领域和专业中的应用正在成为现实。人工智能、机器学习、自然语言处理和深度学习使智慧医疗利益相关者和医疗专业人员能够更快、更准确地明确智慧医疗需求和解决方案&#xff0c;并依…

【WPF绑定2】 ComboBox SelectedValue复杂数据类型绑定

前言 这次绑定是一次非常痛苦的经历&#xff0c;因为SelectedValue总是不能生效&#xff01;我一度怀疑是wpf的Bug。其实还是自己没搞清楚。 在之前的一篇文章中&#xff1a; http://t.csdn.cn/A4W6Ahttp://t.csdn.cn/A4W6A我也写个ComboBox的绑定&#xff0c;但是当时没有指…

css实现两列/三列布局

文章目录css实现两列/三列布局两列布局三列布局css实现两列/三列布局 两列布局 第一种方式&#xff1a;浮动实现 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible"…

点击类化学试剂绿色固体ICG-TCO,取用时保持干燥的环境

一、试剂反应基团&#xff08;Reagent reaction group&#xff09;&#xff1a; 点击类化学试剂包括&#xff1a;DBCO、TCO、Tetrazine、Azide、Alkyne、Auxiliary reagents等。其中TCO又包含了与氨基反应的&#xff0c;与羧基反应的&#xff0c;与荧光素交联的&#xff0c;与…

非零基础自学Golang 第14章 反射 14.3 对结构体的反射操作

非零基础自学Golang 文章目录非零基础自学Golang第14章 反射14.3 对结构体的反射操作14.3.1 获取结构体成员类型14.3.2 获取结构体成员字段的值14.3.3 反射执行结构体方法第14章 反射 14.3 对结构体的反射操作 反射不仅可以获取普通类型变量的值&#xff0c;还可以获取结构体…

中钢矿院冲刺科创板:上半年营收4亿 拟募资5.54亿

雷递网 雷建平 12月20日中钢集团马鞍山矿山研究总院股份有限公司&#xff08;简称&#xff1a;“中钢矿院”&#xff09;日前递交招股书&#xff0c;准备在科创板上市。中钢矿院计划募资5.54亿元&#xff0c;其中&#xff0c;1.41亿元用于国家级研发平台研发能力提升与矿产资源…