赞
踩
我知道很多人和曾经的我一样在找一个使用方便的多线程哈希表的C++实现。但是令人失望的是,这么基本且被广泛需求的东西找不到一个好用的实现。有鉴于此,自己动手用标准C++写了一个,希望能帮助到大家。特点是性能高,跨平台,代码独立自足,不依赖任何其它库。具体源代码我发布在了github上:
GitHub - PhelpsZhao/ZZGLIB: An implementation of thread-safe lock-free hash table in C++
使用很简单,拷贝源码即可。随源码附带的一个main.cpp是一个单线程演示功能用的。有兴趣的小伙伴可以测试一下多线程性能。代码大家可以自由使用,唯一要求就是一定要告诉我使用中发现的问题,让我在后续版本中可以改进。
编译器必须支持C++17,我在gcc 9.5和vs2022下编译通过,其它没试过。
为了提升性能,代码也对一些小功能进行了优化实现。比如需要使用锁的地方没有使用平台锁,全部用标准C++实现,包括自旋锁、版本锁和读写锁等;实现了一个高性能的分配固定长度内存的堆;包含了一些高性能的位运算算法。有兴趣的小伙伴也可以试试这些小玩意。
这个项目的邮箱是zzglib@hotmail.com,有问题可以发我邮件。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。