前言
并发体系可以分为两层,上面一层是抽象的模型,下面一层是承载具体模型的技术机制。
- 模型可以分为: 共享内存模型、Actor模型、CSP模型等
- 承载模型的具体技术机制可以分为: 协程、多线程、多进程、集群分布式
常见的并发模型一般包括3类,基于线程与锁的内存共享模型,actor模型和CSP模型。
Actor和CSP模型都属于高层次的抽象模型,底层的实现可能有多种。而线程与锁(也就是共享内存)模型是较为底层的模型。
并发模型对比表
| 模型分类 | 优点 | 缺点 | 实现语言/库 |
|---|---|---|---|
| 共享内存模型-锁模型 | • 贴近硬件架构,性能高 • 是其他并发模型的基础 |
• 不支持分布式内存模型 • 调试测试困难 • 需避免事务副作用 |
Java/C++等主流语言 |
| 共享内存模型-STM模型 | • 相比锁模型更简单 • 大部分情况下更高效 |
• 不支持分布式内存模型 | Clojure语言标准库 |
| 消息传递模型-CSP模型 | • 相比锁模型更简单 • 容易实现高并发 |
• 不支持分布式内存模型 | Go语言、Clojure的core.async库 |

最低0.47元/天 解锁文章
1551

被折叠的 条评论
为什么被折叠?



