程序员为什么还要刷题 rcu ptr:用于在线程之间交换数据的特殊智能指针
程序员常刷题rcu_ptr介绍读-复制-更新指针( rcu_ptr )是一个特殊的智能指针,可用于在线程之间交换数据。 Read-copy-update(RCU)是一种通用的同步机制,类似于读写锁。它允许极低的读取开销。然而,RCU更新可能很昂贵,因为它们必须保留旧版本的数据结构以适应预先存在的读者。当您有几个读者和几个作者时,RCU很有用。根据您要更新的数据的大小,写入可能会非常慢,因为它们需要复制。因此,值得对系统的输入和环境的特征进行测量和分析。 rcu_ptr通过包装std::shared_ptr实现读取复制更新机制(在某种程度上,它与std::weak_ptr有一些相似之处)。atomic_shared_ptr rcu_ptr依赖于std::shared_ptr的自由函数重载。使用会很好,但目前仍处于实验阶段。我们使用原子shared_ptr操作,它是根据自旋锁实现的(很可能这就是在当前可用的标准库中实现的方式)。拥有无锁的atomic_shared_ptr会非常有益。但是,以可移植的方式实现无锁atomic_shared。