liburcu是一个LGPLv2.1用户空间RCU(读取 - 复制 - 更新)库。 此数据同步库提供读取端访问,该访问可随CPU核数量线性扩展。
liburcu-cds提供基于RCU和无锁算法的高效数据结构。 这些结构包括哈希表,队列,堆栈和双向链表。
文档:
二进制安装包:
liburcu适用于大多数主流Linux发行版。
tar包:
仓库:
您可以从官方用户空间RCU克隆源代码:
git clone git://git.liburcu.org/userspace-rcu.git
创建用户空间RCU库的最初动机:LTTng用户空间跟踪器端口最初需要用户空间RCU库。 因此,用户空间跟踪器实现是liburcu的动机和第一用户。
使用liburcu的其他项目:
用户空间RCU的实现作者:Mathieu Desnoyers和Paul E. McKenney
编译安装:
./bootstrap # skip if using tarball
./configure
make
make install
ldconfig
支持架构
目前,支持以下体系结构:
Linux x86(i386,i486,i586,i686)
x86 64位
PowerPC 32/64
S390,S390x
ARM 32/64
MIPS
Α
IA64
Sparcv9 32/64
Tilera的
HPPA/ PA-RISC
在Linux,FreeBSD 8.2 / 8.3 / 9.0 / 9.1 / 10.0 i386 / amd64和Cygwin上测试过。 还应该工作:
Android的
NetBSD 5
OpenBSD系统
达尔文(是由苹果电脑于2000年所释出的一个开放原始码操作系统)
(在声称支持这些操作系统之前需要进行更多测试)。
Linux ARM依赖于运行Linux内核2.6.15或更高版本,GCC 4.4或更高版本。
支持GCC编译器版本3.3,3.4,4.0,4.1,4.2,4.3,4.4和4.5,但以下情况除外: