active_standby

时间:2024-04-02 20:31:17
【文件属性】:

文件名称:active_standby

文件大小:19KB

文件格式:ZIP

更新时间:2024-04-02 20:31:17

Rust

一个并发库,用于通过单个编写器进行高并发读取。 该库以我们内部保存的2个(相同)表命名: 活动-这是所有读者查看的表。 该表永远不会被写锁定,因此读者永远不会面临争用。 备用-这是Writer突变的表。 由于读取器在交换时会转移到读取活动表,因此写入者应在争用该表的情况下面临最少的争用。 不向读者提供争用,而对作家提供最小争用的成本为: 内存-在内部,我们保存2个用户创建的基础类型的副本。 这是需要的,以便始终有一个表,读者可以在不竞争的情况下检出该表。 编写器线程CPU使用率-编写器必须两次将所有更新应用到每个表一次。 由于读取器使用active_table,因此写入器的锁争用应该少于普通的RwLock。 用法与RwLock相似。 而不是多个线程持有一个RwLock并调用读/写,而是有一个Writer获取对表的写保护,而N个Reader可以获得对表的读保护。 一些灵感来自l


【文件预览】:
active_standby-main
----Cargo.toml(477B)
----src()
--------hashmap.rs(10KB)
--------types.rs(664B)
--------read.rs(1015B)
--------table.rs(2KB)
--------hashset.rs(10KB)
--------vec.rs(13KB)
--------write.rs(15KB)
--------lib.rs(3KB)
--------btreemap.rs(8KB)
--------btreeset.rs(8KB)
----README.md(2KB)
----.gitignore(19B)

网友评论