我正在开发一个多线程服务器,用于存储和读取数据库中的信息。 db是使用RocksDB实现的。
我遇到的问题是,当我一次从多个线程访问数据库时,我收到了该错误。
通常情况下,在使用数据库后没有删除数据库,但现在它没有意义,当然它没有被删除,它被其他人使用线程。
我知道db本身是按照secuential的顺序访问的,所以tecnically你永远不会让两个线程同时读取它,但至少其中一个应该等到锁被释放然后访问它
任何人都知道可能会发生什么?
答案 0 :(得分:2)
问题是我在同一个数据库名称的不同线程中有2个rocksdb :: DB *对象,并且同时从两个线程打开数据库