并发编程两原则

idea at 
并发编程两原则的配图
之前写过一篇文章, 并发编程的核心技术 – 多版本(Multi Versioning), 本文继续对并发编程做一次更全面的总结, 这样的总结并非具体的编程指导, 而概括性的理论, 是笔记性质的.根据经验总结, 并发编程的指导思想可以总结为两个原则, 也即并发编程两原则:ShardingLevelingShardingSharding 技术常见于分布式系统, 如果我举一个编程技巧里常用的技术, 估计你会比较熟悉 - 哈希锁. 例如 Java 语言里的 ConcurrentHashMap, 内部就是把整个容器分成独立的多个分段, 每个分段对应一把锁. 或者某些 KV 数据库, 预先分配若干个锁到数……