通俗易懂地理解并发和并行的区别
前言
并发和并行的区别,相信很多初出茅庐的程序员都会被问到这个问题吧,这两个概念极容易混淆。今天,我们就来通俗地聊聊并发和并行的区别。
概念
通俗的讲解之前,先看一下并发和并行的概念吧。
并发:并发(Concurrent),在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。
并行:并行(Parallel),当系统有一个以上CPU时,当一个CPU执行一个进程时,另一个CPU可以执行另一个进程,两个进程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)。
并行
我们在玩电脑的时候,计算机可以“同时”运行着音乐软件和IDEA,我们可以边敲代码,边听音乐,计算机同时的在做多件事情。在单核cpu的计算机中,我们似乎也能“同时”做这些事情,但这不是真正意义上的并行,其底层是由于cpu快速切换执行任务,给我们一种同时运行的错觉而已。但是,当计算机是多核cpu的时候,当一个CPU执行一个进程时,另一个CPU可以执行另一个进程,两个进程互不抢占CPU资源,可以同时进行,这时候才是真正的“同时”进行,我们称之为并行。就好比,一个网吧,它有多台电脑可以同时满足多位客户的上网需求,这就是并行,同时进行,互不争抢。
并发
并发,指的是多个事情,在同一段时间段内发生了。 同样,我们可以拿网吧来举例子。例如,一个网吧每天晚上六点到晚上十点的用户量特别大,这时候可以称之为并发量大。假如该网吧有100个机子,但是晚上六点到晚上十点却有一百五十人来上网,这时候就有五十人无法正常上网,要么该五十人在此等待,要么就离开网吧。网吧处理这个一百五十人的上网请求,不是在同一时刻进行的,而是在一段时间内处理的。其实,这就是并发。
并发和并行的区别
总的来说,并发,指的是多个事情,在同一时间段内同时发生了;并行,指的是多个事情,在同一时间点上同时发生了。这两者都是处理多个事情,区别就是在于是否“同时”。也可以用下图很好的理解
转载于:https://www.cnblogs.com/happy4java/p/11206005.html
通俗易懂地理解并发和并行的区别相关推荐
- 如何理解并发和并行的区别
首先我们要先理解什么是并发和并行: 并发的概念-在一定时间内系统能够处理的任务数 并行的概念是----指应用能够同时执行不同的任务 结合例子来说明: 并发:早上排队去在一个窗口买早餐所有人按照先后顺序 ...
- 并发与并行的区别(超级通俗易懂)
学习多线程的时候会遇到一个名词:并发.这是属于操作系统中的词汇,需要了解并发和并行的区别,从网上搜集了几种说法帮助理解. 一: 并发是指一个处理器同时处理多个任务. 并行是指多个处理器或者是多核的处理 ...
- java并发和并行的区别
概念: 并发:以交替的方式 利用等待某件事情完成的时间 来做其他事情,轮流执行任务,不一定同时.宏观上同时,微观上依次执行. 并行:在同一时刻,任务同时开始进行,彼此没有依赖关系.多个任务同一时刻同 ...
- 转:并发与并行的区别
转: https://www.jianshu.com/p/b11e251d3dc7 并发:一个处理器同时处理多个任务.(concurrency) 单个cpu逻辑上同时处理多个任务: 并行:多个处理器或 ...
- 如何向纯洁的女朋友解释并发与并行的区别?
原文链接:并发与并行的区别 现在我们都说设计可并行.高并发的程序,而且我们很多时候会在潜意识里觉得自己对并行(Parallelism)和并发(Concurrency)的区别很清楚,但如果要明确的说出二 ...
- 操作系统中并发和并行的区别和联系
多线程中并发和并行有区别吗? 搞不懂并发和并行分别是什么意思? 一文通俗的解释并发和并行的区别和联系. 本人一直以为并发和并行是一个意思,直到偶然从站长公众号上看到了并发和并行的区别一文,因此做个笔记 ...
- 多线程并发和并行的区别
背景 对于java开发从业人员来说,并发编程是绕不开的话题,juc并发包下提供了一系列多线程场景解决方案. 随着jdk1.8的普及,多线程处理问题,除了使用使用线程池(ExecutorServic ...
- 并发和并行的区别_多核、多处理器、并发、并行、超线程概念总结
多核与多处理器 多核( ) 多核处理器就是指单个 CPU 中有多个可执行单元. 如下图所示,单个 CPU 中有两套可执行单元. 多处理器( ) 多处理器系统则是一个拥有多个 CPU 的系统.每个 CP ...
- 程序与进程的区别,并发与并行的区别,多进程的实现原理
目录 1. 什么是进程 2. 进程与程序的区别 3. 并发与并行 4. 同步\异步and阻塞\非阻塞(重点) 5. 进程的创建(了解) 6. 进程的终止(了解) 7. 进程的层次结构 8. 进程的状态 ...
- 一个“制作午餐”的故事,帮助你理解并发和并行(上)
导读 这是一个关于"午餐时间"的小故事,用于阐述 threading.asyncio.multiprocessing.cloud functions 等内容.为了方便阅读并理解文章 ...
最新文章
- linux shell中小数的运算
- Boost.Signals2 的有序插槽 hello world 示例
- 【Java】生成 .json格式文件工具类
- 雷林鹏分享:C# 多态性
- Science:这种算法,也许将创造更公平的人工智能
- 面向对象编程设计练习题(1)
- Vue之v-if, v-else, v-show, v-for, v-bind
- 移动端自动化测试:python+appium+pytest+allure+yaml
- .tar.gz和.tar.bz2解压命令
- mysql 查询最早 表_MySQL-如何查询表中最早时间和最晚时间
- vue.config.js跨域配置
- 企业微信每日定时自动上报
- Java+Swing实现自助取款机(ATM)系统-TXT存储数据
- 曼哈顿距离最小生成树(树状数组)
- 想换4K显示器了?那你搞懂啥是4K了吗?
- 2021年安全员-B证找解析及安全员-B证模拟考试题
- CAD高版本转低版本怎么转?分享几种好用的转换方法
- IDEA代码提示快捷键Ctrl+Space不生效问题
- 二硫化钼量子点修饰纳米金棒/CdS纳米棒|二硫化钼量子点/g-C3N4复合光催化剂|马来酰亚胺修饰二硫化钼MoS2-MAL
- Java实现一个简单双色球摇奖功能