【软考系统架构师】进程与线程、并发和并行的理解

news2024/11/17 7:50:06

进程和线程的概念是软考里经常出现的概念,也是计算机领域的基础概念之一,看到一套非常形象的进程和线程的解释,记录一下

 CPU 相当于一个工厂的能源核心,它一直运行,并向外提供动力。

什么是进程

 但是这家工厂资金有限,所有它只有一个能源中心,一次只能给一个车间提供动力。对应在计算机领域就是一个CPU一次只能运行一个任务,这个任务呢就是一个进程。其他的车间没有动力源就无法开工,于是处于未运行状态。

什么是线程 

在一个车间里可以同时有很多工人一起工作,协同完成任务(比如流水线打螺丝),这些工人就相当于线程,他们可以协同工作完成任务,同时共享了车间公共资源比如:《打螺丝指南》《如何成为一个优秀的螺丝工》、车间里唯一 一把榔头、比如说车间免费的可以共享的空气。

对应进程中的共享全局变量、共享的程序代码等

 

共享资源是按车间分配的,任务是可以分配到人, 所以这样我们就明白了进程是资源调度的单位,线程是任务执行的单位。

临界资源

但是有些资源一次只能一个工人使用,比如一个厕所隔间。当它使用时就把门锁拧上,这样其他人就无法进入。这就相当于进程空间中有些内存是每次只能独立使用的。

并发与并行

由于CPU运行和切换任务的速度非常之快,让用户看起来像是多个进程在“同时”运行。这就是并发,在用户的“一瞬间”里看起来在同时发生。

并发

 由于技术发展,现代的CPU已经普遍是多核了,其每一个核就相当于以前的一个CPU,这样每一个任务就可以持续使用一个CPU了,多个任务就可以“并行”的运行了

并发

补充一下进程线程、并发并行的学术定义

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。

线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。

并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。

并行:是指“并排行走”或“同时实行或实施”。在操作系统中是指,一组程序按独立异步的速度执行,无论从微观还是宏观,程序都是一起执行的。对比地,并发是指:在同一个时间段内,两个或多个程序执行,有时间上的重叠(宏观上是同时,微观上仍是顺序执行)。

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

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

相关文章

A*算法与八数码问题(numpy)

努力是为了不平庸~ 学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。 目录 一、引言 二、思路 1. 确定问题和目标: 2. 确定算法和数据结构: 3. 编写代码框架 4. 实现辅助函数&#xff1…

CreateML 使用以及机器学习基础概念

1. 前言 在学习 CreateML 之前,我们先了解一下什么是机器学习?目前还不存在被广泛认可的定义来准确定义机器学习是什么。第一个机器学习的定义来自于Arthur Samuel。他定义机器学习为,在进行特定编程的情况下,给予计算机学习能力…

C语言-类型转换

数据有不同的类型,不同类型数据之间进行混合运算时必然涉及到类型的转换问题. 转换的方法有两种: 自动转换: 遵循一定的规则,由编译系统自动完成. 强制类型转换: 把表达式的运算结果强制转换成所需的数据类型 1 自动转换 自动转换原则 …

阿里人手一本的Java性能调优手册,几乎涵盖了性能优化的所有操作

说起性能调优,想必大家都知道,但是就是没怎么用过,所以在Java性能优化上面临着很多的困扰,比如: 能力修炼中,由于常年接触 CRUD,缺乏高并发这一实践环境,对“性能优化”只能通过理论…

剑指 Offer 59 - I: 滑动窗口的最大值

第一眼看这个感觉思路没啥大问题,就是一个大循环不断后移,然后小循环维护一个k长度的队列。注意peekFirst和peekLast的使用,双端队列可以打破先进先出或者先进后出的局限性,因此peek没有默认值,得加上First或者Last来进…

干货 | 腾讯云李滨:云时代数据安全治理方法与实践

作者:李滨‍‍‍‍本文约2600字,建议阅读8分钟 本文与你分享腾旭在数据安全和人工智能的安全治理方法,以及实践上的一些经验。 今天很荣幸与大家分享在过去几年以内,腾讯在数据安全和人工智能的安全治理方法,以及实践上…

使用服务器的妙妙工具

为什么使用服务器? 一台电脑的性能终究是有限的,所以当计算量太大时,我们可以借助服务器,它的运算速度快,存储空间大。 和个人电脑不同,服务器通常由一个管理员进行管理,而有多用户同时使用。…

一行代码实现网页直接跳转抖音,2023年6月新方法

之前 发的文章 方法已经失效,以下为新版本方案! 背景 大家可能都发现在一些APP中无法直接打开抖音的链接,就连抖音官方的分享链接在浏览器打开都无法直接唤醒APP。需要我们手动点击,如果我们在自己网站等推广希望直接拉起抖音可…

工厂方法模式(五)

过气的,终究是过气了 上一章简单介绍了工厂模式(四), 如果没有看过,请观看上一章 一.工厂方法模式 工厂方法模式,通过定义工厂父类负责定义创建对象的公共接口,而子类则负责生成具体的对象。 将类的实例化(具体产品的创建&…

全网最火爆,性能测试基本原则方法总结,再不卷就被淘汰了...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 性能测试关键点 …

2023 年牛客网最新版大厂 Java 八股文面试题总结(覆盖所有面试题考点)

序员真的是需要将终生学习贯彻到底的职业,一旦停止学习,离被淘汰,也就不远了。 金九银十跳槽季,这是一个千年不变的话题,每到这个时候,很多人都会临阵磨枪,相信不快也光。于是,大家…

什么是Vue的数据流(单向数据流)?如何进行数据流管理

什么是Vue的数据流(单向数据流)?如何进行数据流管理 在Vue中,数据流是指数据的传递和管理方式。Vue采用的是单向数据流,也就是说,数据是从父组件流向子组件,子组件不能直接修改父组件的数据。本…

夏季来临居民如何预防电气火灾隐患

安科瑞虞佳豪 居住场所预防电气火患 请注意以下几点 1.用具有生产许可证或CCC证书并与居住场所的环境相适应的电气线路以及插座、插线板、充电器、用电设备等电器产品; 2.不私自拉接电气线路;不随意更改电气线路保护装置; 3.不随意更换原…

泛娱乐社交(一)直播产品商业化解决方案

摘要 在过去几年的直播行业创业风口期中,直播的用户关注度疯狂增长,但用户质量却参差不齐。随着用户新鲜感一过,流失率变得相当严重,各大平台都在竭尽全力防御。然而,留住“凑热闹”的非直播受众用户并不是最关键的问…

SpringBoot(基础篇)

SpringBoot基础篇 入门案例 在创建SpringBoot项目时,会出现以下不需要的文件,如果每次都手动删除的话,就会很麻烦。 教你一招 在setting设置中找到Editor,选择File Types–>Ignored Files and Folders–>点击号&#xff…

pycharm使用之torch_geometric安装

正式安装之前要先查看一下torch的版本 一、查看torch版本 1、winR ,输入cmd 2、输入python 3、 输入import torch,然后输入torch.__version__,最后回车 可以看到我的torch版本是1.10.0 二、下载合适的版本 1、打开链接 https://pytorch-…

千万级入口服务[Gateway]框架设计(一)

本文将以技术调研模式编写,非技术同学可跳过。 文章目录 背景问题[不涉及具体业务]目标技术选型语言框架模式实现一:go 原生组件Demo 实现Benchwork 基准性能小结实现二:开源 go-plugin 附录入口服务演变 背景 在历史架构的迭代中&#xff…

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

警告:此功能处于技术预览阶段,可能会在未来的版本中更改或删除。 Elastic 将尽最大努力修复任何问题,但技术预览中的功能不受官方 GA 功能的支持 SLA 约束。 Elastic Learned Sparse EncodeR - 或 ELSER - 是由 Elastic 训练的检索模型&#…

Python程序员必会技能:如何在Python中连接数据库获取数据

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 想要成为一名数据分析师,一个最基础的技能就是:提取数据。 数据是数据分析的基础。 因此,掌握各种获取数据的技能一定是一个合格的数据分析师的必备技能。 而我们的需要进行提取的…

总结排查服务器上传下载慢的几种手段与查看服务器带宽的具体方法

一、排查服务器上传下载 最近出现的一个情况,服务器上传和下载比较慢,因此我排查了种种手段,特此记录下几种常见的手段。 1、使用speedtest-cli 测试网速: 该方法是测试网速的速度怎么样,看看是否真的慢? …