知识卡片

并发不是并行

专业/工作 · 489.b.2.b.1.a.1.c

内容

并发强调任务在时间片中交替推进,并行强调多个核心在同一时刻真正同时执行。把二者混淆,会误判性能问题:并发能改善等待与组织方式,但不必然增加计算吞吐。并发的具体实现方式对比见 [[线程共享资源]]。

参考来源

- 位置:《Go语言高级开发与实战》第4章《Go语言并发编程》(源文件:_epub-src/GoYu Yan Gao Ji Kai Fa Yu Shi Zhan_split_034.html) - 结论依据:原文分别定义并发和并行,前者是快速轮换执行,后者是多个处理器同一时刻执行,因此支撑两者区别。 - 原始内容:4.1 并发编程基础 1 什么是并发 并发(Concurrent)是指在CPU中同一时刻只能有一条指令执行,多个进程指令被快速地轮换执行。从宏观上看,是多个进程同时执行。但从微观上看,这些进程并不是同时执行的,只是把时间分成若干段,多个进程快速交替地执行。 在操作系统中进程的并发是:CPU把一个时间段划分成几个时间片段(时间区间),进程在这几个时间片段之间来回切换处理的过程。由于CPU处理的速度非常快,只要时间间隔处理得当,就可让用户感…