网站首页 > 资源文章 正文
并发和并行的区别,相信很多初出茅庐的程序员都会被问到这个问题吧,这两个概念极容易混淆,今天,我们就来通俗地聊聊并发和并行的区别@mikechen
并发(Concurrent)
当有多个线程在操作时,如果系统只有一个 CPU,则它根本不可能真正同时进行一个以上的线程,它只能把 CPU 运行时间划分成若干个时间段,再将时间段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状态.这种方式我们称之为并发(Concurrent)。
并发,指的是多个事情,在同一段时间段内发生了,大家都在争夺统一资源。再举一个例子:我们可以拿网吧来举例子。
一个网吧每天晚上六点到晚上十点的用户量特别大,这时候可以称之为并发量大。
假如该网吧有100个机子,但是晚上六点到晚上十点却有150人来上网,这时候就有50人无法正常上网,要么该50人在此等待,要么就离开网吧。
网吧处理这个一百五十人的上网请求,不是在同一时刻进行的,而是在一段时间内处理的,其实,这就是并发。
并行
当系统有一个以上CPU时,当一个CPU执行一个进程时,另一个CPU可以执行另一个进程,两个进程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)。
我们在玩电脑的时候,计算机可以“同时”运行着音乐软件和IDEA,我们可以边敲代码,边听音乐,计算机同时的在做多件事情。
在单核cpu的计算机中,我们似乎也能“同时”做这些事情,但这不是真正意义上的并行,其底层是由于cpu快速切换执行任务,给我们一种同时运行的错觉而已。
但是,当计算机是多核cpu的时候,当一个CPU执行一个进程时,另一个CPU可以执行另一个进程,两个进程互不抢占CPU资源,可以同时进行,这时候才是真正的“同时”进行,我们称之为并行。
就好比,一个网吧,它有多台电脑可以同时满足多位客户的上网需求,这就是并行,同时进行,互不争抢。
并发和并行的区别
并发是指一个处理器同时处理多个任务,并行是指多个处理器或者是多核的处理器同时处理多个不同的任务。
并发是逻辑上的同时发生,而并行是物理上的同时发生。
并行在多处理器系统中存在,而并发可以在单处理器和多处理器系统中都存在,并发能够在单处理器系统中存在是因为并发是并行的假象,并行要求程序能够同时执行多个操作,而并发只是要求程序假装同时执行多个操作(每个小时间片执行一个操作,多个操作快速切换执行)。
并发和并行两者的最大区别:一个是交替执行,一个是同时执行,一图胜千言,如下图所示:
以上
架构技术合集
- 分布式架构设计从0到1全部合集(附:分布式、微服务、高并发等大型网站架构)
- JVM(Java虚拟机)从0到1全部合集
- Java多线程与并发从0到1全部合集
- Redis分布式缓存从0到1全部合集
- Spring开发框架从0到1全部合集
- MySQL数据库从0到1全部合集
猜你喜欢
- 2025-02-03 彻底学会使用epoll(二)——ET的读写操作实例分析
- 2025-02-03 深圳尚学堂java知识大总结(二)(尚学堂java从入门到实战视频)
- 2025-02-03 基于可重构技术的DSP任务动态加载方法研究
- 2025-02-03 Stateflow的状态图的基本概念(状态流图)
- 2025-02-03 Linux系统编程—时序竞态(linux实时调度的优先级范围)
- 2025-02-03 操作系统-进程管理(操作系统进程的基本操作)
- 2025-02-03 vmware workstation 15 虚拟机快照(8)
- 2025-02-03 Windows远程进入服务器界面黑屏如何处理?
- 2025-02-03 CPU_PWRGD&PROCPWRGD&H-PWRGD信号讲解
- 2025-02-03 IOS应用生命周期简介(app生命周期函数有哪些)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)