推荐:七周七并发模型
2023-02-18 15:28:56 时间
《七周七并发模型》是介绍并发模型的好书,值得一读。
许多开发者搞了好多年开发,对并发模型却只知道多进程和多线程这两种。这本书从最基础的线程和锁模型讲起,介绍了许多非常有用的并发模型:
-
通过无变量的函数式编程实现并发,是无锁并发的一种模型;
-
Clojure对于状态和标识的分离,可以轻松实现内存事务模型;
-
Erlang的Actor模型是容错性非常高的分布式并发模型;
-
CSP模型是另一种分布式并发模型,被Go和Clojure采用;
-
GPU的并行计算主要针对数据密集型计算的并行,搞游戏的一定要看;
-
Hadoop和Storm分别适合超大数据量的批处理和流式处理。
其实,无论什么并发模型,归根到底,设计思想就是:
-
数据要不变
-
数据要不变
-
数据要不变
在这个指导思想下实现并发,比传统的多线程+锁容易多了。任何数据,只要保持不变特性,就可以反复执行,因为结果是一样的,这样分布式和容错的实现就简单多了。
你可能会问,数据怎么可能不变呢?其实不变特性是指数据在一个时间点上是不变的,想想版本控制系统就明白了。
如果设计数据库模型时,实现了不变数据结构,那么将大大简化数据库事务的代码,并且极大地提升系统性能。遗憾的是,大多数开发人员设计的数据库模型都复杂得完全无法实现并发。
点击从亚马逊购买:
相关文章
- [小程序]小程序框架的简单页面布局
- 量子计算(八):观测量和计算基下的测量
- 量子计算(九):复合系统与联合测量
- [小程序]支付宝小程序GET请求数据并展示列表界面
- [日常] 面试知识点总结(持续更新)
- [PHP]外观/门面/Facade模式-结构型设计模式
- [TCP/IP] 计算机网络性能指标
- 宝塔强制关闭面板SSL
- [MySQL] mysql int后面的数字与前导零填充
- [Go] 获取文件夹下面指定模式的文件列表 , 并且获取文件创建时间删除超过30分钟的文件
- [javascript] elementui下login登录页界面和js验证逻辑
- [javascript] vuejs的elementui配合iframe实现页面跳转
- [Go] 使用字面值方式初始化map
- [javascript] 基于elementui的后台界面开发
- [PHP] 算法-数组归并排序并计算逆序对的个数的PHP实现
- [PHP] 算法-原址排序数组使奇数位于偶数前面的PHP实现
- [MySQL] 索引优化不只是用于面试
- 带你全面的了解二叉树
- VEGA:诺亚AutoML高性能开源算法集简介
- CANN 5.0硬核技术抢先看