并发程序:含多个逻辑上的独立执行块,可以独立地并行执行,也可以串行执行。是同一时间处理(发生)多件事情的能力。
并行程序:比串行程序快得多,可以同时执行整个任务的多个部分。是同一时间执行多件事情的能力。
并行架构
- 位级并行
- 指令级并行(流水线、乱序执行、猜测执行等)
- 数据级并行(单指令多数据)
任务级并行(多处理器)——特征:内存模型(共享内存模型或分布式内存模型)
模型
线程与锁模型
- 函数式编程
- 消除了可变状态,所以从根本上是线程安全的
- actor模型
- 适用于共享内存模型和分布式内存模型
- 通信顺序进程(Communicating Sequential Processes, CSP)模型
- 与actor模型相似,都是基于消息传递。但CSP模型侧重于传递信息的通道;而actor模型侧重与通道两端的实体
reactor 与 proactor 模型
https://www.kancloud.cn/idzqj/customer/1885415 https://gee.cs.oswego.edu/dl/cpjslides/nio.pdf https://blog.csdn.net/wlddhj/article/details/123872275
Lambda架构
- 总和了MapReduce和流式处理的特点
- 数据级并行——GPU