关于多线程共享大数据量的hash_map的问题
我的问题描述如下:
用一个hash_map存储一个最大pair数达到几十万条的用户简单信息,由多个线程共享。
大概有三种情况:向hash_map里添加一条记录,查询一条记录,删除记录。
要进行同步,由于对hash_map的访问频率很高,如果只对hash_map使用读写锁,那么线程挂起的情况将非常严重。
我想模仿数据库的多粒度锁机制来提高效率。即对hash_map和pair采取不同的策略,当添加记录时对hash_map写锁定,而删除记录时对pair写锁定,查询时则只对pair读锁定。
请教各位达人,此方法是否具有可行性?还有就是这么多的读写锁开销大到什么程度?还有什么更好的方法吗?由于没有分了,所以只给了10分,先谢谢各位了