《七周七并发模型》是介绍并发模型的好书,值得一读。
许多开发者搞了好多年开发,对并发模型却只知道多进程和多线程这两种。这本书从最基础的线程和锁模型讲起,介绍了许多非常有用的并发模型:
通过无变量的函数式编程实现并发,是无锁并发的一种模型;
Clojure对于状态和标识的分离,可以轻松实现内存事务模型;
Erlang的Actor模型是容错性非常高的分布式并发模型;
CSP模型是另一种分布式并发模型,被Go和Clojure采用;
GPU的并行计算主要针对数据密集型计算的并行,搞游戏的一定要看;
Hadoop和Storm分别适合超大数据量的批处理和流式处理。
其实,无论什么并发模型,归根到底,设计思想就是:
数据要不变
数据要不变
数据要不变
在这个指导思想下实现并发,比传统的多线程+锁容易多了。任何数据,只要保持不变特性,就可以反复执行,因为结果是一样的,这样分布式和容错的实现就简单多了。
你可能会问,数据怎么可能不变呢?其实不变特性是指数据在一个时间点上是不变的,想想版本控制系统就明白了。
如果设计数据库模型时,实现了不变数据结构,那么将大大简化数据库事务的代码,并且极大地提升系统性能。遗憾的是,大多数开发人员设计的数据库模型都复杂得完全无法实现并发。
点击从亚马逊购买: