推荐:七周七并发模型

廖雪峰 / 文章 / ... / Reads: 36282 Edit

《七周七并发模型》是介绍并发模型的好书,值得一读。

许多开发者搞了好多年开发,对并发模型却只知道多进程和多线程这两种。这本书从最基础的线程和锁模型讲起,介绍了许多非常有用的并发模型:

  • 通过无变量的函数式编程实现并发,是无锁并发的一种模型;

  • Clojure对于状态和标识的分离,可以轻松实现内存事务模型;

  • Erlang的Actor模型是容错性非常高的分布式并发模型;

  • CSP模型是另一种分布式并发模型,被Go和Clojure采用;

  • GPU的并行计算主要针对数据密集型计算的并行,搞游戏的一定要看;

  • Hadoop和Storm分别适合超大数据量的批处理和流式处理。

其实,无论什么并发模型,归根到底,设计思想就是:

  1. 数据要不变

  2. 数据要不变

  3. 数据要不变

在这个指导思想下实现并发,比传统的多线程+锁容易多了。任何数据,只要保持不变特性,就可以反复执行,因为结果是一样的,这样分布式和容错的实现就简单多了。

你可能会问,数据怎么可能不变呢?其实不变特性是指数据在一个时间点上是不变的,想想版本控制系统就明白了。

如果设计数据库模型时,实现了不变数据结构,那么将大大简化数据库事务的代码,并且极大地提升系统性能。遗憾的是,大多数开发人员设计的数据库模型都复杂得完全无法实现并发。

点击从亚马逊购买:

Comments

Make a comment

Author: 廖雪峰

Publish at: ...

关注公众号不定期领红包:

加入知识星球社群:

关注微博获取实时动态: