看图非常容易理解:
文章插图
上图中将一个任务中的三个步骤取柴、运柴、卸柴划分成了独立的小任务 , 有取柴的老鼠 , 有运柴的老鼠 , 有卸柴烧火的老鼠 。
如果上图中所有的老鼠都是同一只 , 那么是串行并发的 , 如果是不同的多只老鼠 , 那么是并行并发的 。
总结并行和串行:
串行:一次只能取得一个任务并执行这一个任务
并行:可以同时通过多进程/多线程的方式取得多个任务 , 并以多进程或多线程的方式同时执行这些任务
注意点:
- 如果是单进程/单线程的并行 , 那么效率比串行更差
- 如果只有单核cpu , 多进程并行并没有提高效率
- 从任务队列上看 , 由于同时从队列中取得多个任务并执行 , 相当于将一个长任务队列变成了短队列
并发是一种现象:同时运行多个程序或多个任务需要被处理的现象
这些任务可能是并行执行的 , 也可能是串行执行的 , 和CPU核心数无关 , 是操作系统进程调度和CPU上下文切换达到的结果
解决大并发的一个思路是将大任务分解成多个小任务:
- 可能要使用一些数据结构来避免切分成多个小任务带来的问题
- 可以多进程/多线程并行的方式去执行这些小任务达到高效率
- 或者以单进程/单线程配合多路复用执行这些小任务来达到高效率
推荐阅读
- 马鞭草和马鞍草,马鞭草和鼠尾草怎么区别
- 槐角治痔疮,治痔疮的根治办法
- 84消毒液能杀死霉菌和细菌吗 84消毒液能除霉吗
- VS Code 安装和设置Visual Studio Code的简要教程
- 陈皮和哪些茶搭配最好,陈皮与什么泡茶最好老友茶告诉你陈皮和哪些茶搭配最好
- 生啤的成分和工艺,古法生晒工艺
- 星月菩提等级价格表,千眼菩提和星月菩提的区别
- 陈皮泡水喝的功效和禁忌,陈皮泡水喝的功效
- Data Mesh的原则和逻辑架构
- API攻击原理,以及如何识别和预防