一种基于CAS的无锁并发HashTable设计及C代码实现
在多线程环境下,我们常常用Java的ConcurrentHashMap,但其实这个Map仍然是要使用锁的,只不过使用了一种被称为StripeLock的方式。这里我们试着实现一个完全无锁的HashTable。
首先我们必须弄清楚HashMap有哪些操作,哪些地方是临界区(CriticalRegion),哪里不是。一个完整的HashMap无非就以下几种操作:
1.
插入数据(PUT)
原创
2013-05-12 12:27:35 ·
6389 阅读 ·
0 评论