无锁数据结构的设计原则
by xiewajueji
多线程数据结构在工程中是非常常见的东西,但是把它设计对设计好是一件非常难的事情,笔者希望凭借自己的理解能够总结出一些规律
多线程数据结构的设计原则
- 保证没有任何一个线程能够看见数据的不一致性
- 接口设计的时候要把多个方法组合成事务
- 保证异常不会破坏数据的状态
- 通过限定锁的作用域和避免可重入锁来减少死锁的几率
多线程数据结构的优化原则
- 某些操作能否从锁的作用域中移出
- 数据的不同部分能否用不同的锁来保护
- 是否所有的操作需要同样级别的保护
- 简单的修改数据结构能否在不影响语义的情况下提高并发度