【JUC面试题】进程和线程有什么区别

news/2024/3/29 9:07:16/文章来源:https://blog.csdn.net/qq_50675319/article/details/129137241

进程和线程有什么区别?

知识刨析知识刨析 知识刨析
这是一道比较基础的题,但是要想回答的比较好还是有难度的,因为考察的更多是操作系统方面的知识,在回答时可以先从两者的概念入手,再进行对比。
面试回答面试回答 面试回答
进程:进程是应用程序的一个实例,打开一个程序就相当于开启了一个进程,每个进程都会在操作系统中拥有独立的内存空间、地址、文件资源、数据资源等。进程是资源分配和管理的最小单位。

线程:线程从属于进程,是程序的实际执行者,一个进程中包含若干个线程,每个线程都会拥有自己的计数器、堆栈、局部变量等属性,并且能够访问共享的内存变量。线程是操作系统(CPU)调度和执行的最小单位。

两者对比:

第一点,进程是资源分配和管理的最小单位,线程是CPU调度和执行的最小单位。

第二点,进程是拥有系统资源的,而线程是不拥有系统资源的,线程只能去访问隶属进程所占有的系统资源,一个进程所占有的系统资源是被这个进程内的线程所共享的。

第三点,进程创建、销毁、切换的开销要比线程创建、销毁、切换要大的多,在进程创建或者销毁时,系统要为之分配或回收资源,如内存空间、IO设备等,在进程切换时,假如要从A进程切换到B进程,那么就需要把当前A进程的CPU环境保存,然后把CPU环境设置为B进程的,这一部分开销也是很大的,而线程切换时只需保存和设置少量寄存器内容,开销很小,究其根本原因,就是进程占有系统资源而线程不占有系统资源。

第四点,进程之间是相互独立的,且一个进程内的线程相对于其他进程来说也是不可见的。

第五点,进程之间的通信比较复杂,同一台电脑上的进程之间的通信称之为IPC,需要进程同步和互斥手段的辅助来保证数据一致性,不同电脑上进程的通信需要遵守一定的协议,例如http,而线程之间的通信比较简单,这是因为同一进程内的多个线程是共享进程的地址空间的,线程间可以直接通过读/写进程数据段(如全局变量)来进行通信,甚至无需操作系统的干预。

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算时间序列周期的三种方法

周期是数据中出现重复模式所需的时间长度。更具体地说,它是模式的一个完整周期的持续时间。在这篇文章中,将介绍计算时间序列周期的三种不同方法。 我们使用City of Ottawa 数据集,主要关注的是每天的服务呼叫数量。所以不需要对病房名称进行…

选型最佳实践|从业务场景分析直播SDK

摘要 近两年即时通讯/直播产品炙手可热,市场上针对ToB的产品日益增多,企业该如何去选型呢?本文分享了笔者对于直播产品的思考,将从直播SDK实例功能特性、常见业务场景、注意事项及最佳实践等方面介绍如何进行实例选型,…

【C++】2.类和对象(上)

1.面向过程和面向对象 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。 2.类的引入…

Umi框架

什么是 umi umi 是由 dva 的开发者 云谦 编写的一个新的 React 开发框架。umi 既是一个框架也是一个工具,可以将它简单的理解为一个专注性能的类 next.js 前端框架,并通过约定、自动生成和解析代码等方式来辅助开发,减少开发者的代码量。 u…

算法18:LeetCode_链表相关算法题

链表无小事,只要是涉及到链表的算法题,边界值的设定尤为重要,而且及其容易出错误。这就要求我们平时多加练习。但是,我们在面试和笔试的过程中往往会碰到链表相关的题目,所以我们在笔试的时候一般都会借助系统提供的工…

Netty (三):进阶

文章目录1. 粘包与半包1.1 粘包现象1.2 半包现象1.3 现象分析1.4 解决方案方法1,短链接方法2,固定长度方法3,固定分隔符方法4,预设长度2. 协议设计与解析2.1 为什么需要协议?2.2 redis 协议举例2.3 http 协议举例2.4 自…

前端二面react面试题集锦

react diff 算法 我们知道React会维护两个虚拟DOM,那么是如何来比较,如何来判断,做出最优的解呢?这就用到了diff算法 diff算法的作用 计算出Virtual DOM中真正变化的部分,并只针对该部分进行原生DOM操作,而…

「TCG 规范解读」第七章 TPM工作组 TPM 总结

可信计算组织(Ttrusted Computing Group,TCG)是一个非盈利的工业标准组织,它的宗旨是加强在相异计算机平台上的计算环境的安全性。TCG于2003年春成立,并采纳了由可信计算平台联盟(the Trusted Computing Platform Alli…

【Azure 架构师学习笔记】-Azure Data Factory (1)-调度入门

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Data Factory】系列。 前言 在开发好一个ADF pipeline(功能)之后,需要将其按需要运行起来,这个称之为调度。下图是一个简单的ADF 运作图, 按照需要的顺序&am…

【YOLOv5】 02-标注图片,训练并使用自己的模型

在上一篇文章中,我们完成了YOLOv5的安装和测试。如果想检测自定义目标,就需要用到LabelImg来对图片打标签,本篇文章介绍了LabelImg安装与使用,以及如何训练并使用自己的模型。一、安装LabelImg输入如下命令进行安装:pi…

seo优化案例截图

点击进入》》三支一扶课程聚合页面 百度统计数据 流量稳步增长, 2022年9月比2021年9月 同期增长 约30%。

rocketmq延时消息自定义配置;一个topic下tag分组

概述 使用的是开源版本的rocketmq4.9.4 rocketmq也是支持延时消息的。 rocketmq一般是4个部分: nameserver:保存路由信息broker:保存消息生产者:生产消息消费者:消费消息 延时消息的处理是在其中的broker中。 但是…

项目中异常信息的统一处理以及JSR03校验

在项目中,我们经常会对前端传过来的数据判断是否有一些错误,比如:id是否为空,传过来的名称是否合格,如果不符合我们通常会抛出异常,那么小的项目可能每次抛出异常也不是很麻烦,但是对于一个大型…

小程序上新(2022.12.12~2023.02.20)

20221216关于小程序违规收集用户隐私行为的规范20221222优先使用本地版本设置功能上线备注:已和微信官方工作人员确认,开启本地优先后,用户打开小程序过程中,异步去下载新版包,打开完成后,功能是新包,异步下载完成后提示用户重启小…

actipro-winforms-controls-23.1.0 Crack

actipro-winforms一组用于构建漂亮的 Windows 窗体桌面应用程序的 UI 控件,用于构建 IDE 的高级停靠窗口、MDI、属性网格、树控件和文件夹/文件浏览器,用于常见数据类型、自动完成、屏蔽编辑和代码编辑的强大编辑器,功能区、图表、微型图表、…

JavaScript中怎么实现链表?

JavaScript中怎么实现链表? 学习数据结构的的链表和树时,会遇到节点(node)这个词,节点是处理数据结构的链表和树的基础。节点是一种数据元素,包括两个部分:一个是实际需要用到的数据&#xff1b…

十一、项目实战一

项目实战一 需求 以 前后端不分离的方式实现学生的增删改查操作 学生列表功能 接口设计 url:/students/ 请求方法:get 参数: 格式:查询参数 参数名类型是否必传说明pageint否页码,默认为1sizeinit否每页数据条数默认为10n…

Ansys Zemax | 如何在存在全内反射 (TIR) 的情况下应用散射

在本文中,我们将展示如何利用虚拟表面来对具有全内反射 (TIR) 的物体进行建模,同时保持其他独特的表面特性,例如粗糙的表面结构。 下载 联系工作人员获取附件 简介 在OpticStudio中,全内反射 (TIR) 在其他表面属性&#xff08…

Java:顶级Java应用程序服务器 — Tomcat、Jetty、GlassFish、WildFly

如果你想编写Java web应用程序,首先需要做出一个艰难的决定:选择运行应用程序的Java应用程序服务器。什么是应用服务器?一般来说,应用程序服务器执行Java应用程序。在操作系统中启动它们,然后将应用程序部署到其中。将应用程序服…

07 二叉树

开始系统学习算法啦!为后面力扣和 蓝桥杯的刷题做准备!这个专栏将记录自己学习算法是的笔记,包括 概念, 算法运行过程,以及 代码实现,希望能给大家带来帮助,感兴趣的小伙伴欢迎评论区留言或者私…