android - RocksDB IO错误: lock db/LOCK: No locks available

标签 android c++ multithreading server rocksdb

我正在开发一个多线程服务器,用于存储和读取数据库中的信息。该数据库是使用RocksDB实现的。

我遇到的问题是,当我一次从多个线程访问数据库时,我收到该错误。

通常,它会说数据库在使用后没有被删除,但现在它没有意义,当然它没有被删除,它正在被另一个线程使用。

我知道数据库本身是按顺序访问的,所以从技术上讲,你永远不会有两个线程同时读取它,但至少其中一个应该等到锁被释放并然后访问它

有人知道会发生什么吗?

最佳答案

问题是我在不同线程中有 2 个 Rocksdb::DB* 对象,具有相同的数据库名称,并且同时从两个线程打开数据库

关于android - RocksDB IO错误: lock db/LOCK: No locks available,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33620906/

相关文章:

android - 如何判断android设备是否已关闭

android - 针对特定包的自定义 Intent

c++ - 在我们的 c++ 程序中包含巨大的字符串?

java - 当 PipedReader 与 PipedWriter 位于不同线程时,如何将它们连接起来?

具有多个客户端的 Java 即时通讯工具无法正常工作

java - 我如何选择将播放来自 SC 2 服务器的哪个 SID?

android - Volley 的磁盘缓存内存不足问题

c++ - Qt 添加 Widget 到 GraphicsView?

c++ - Ogre点场景保存

c++ - 处理 std::thread::hardware_concurrency()