我在我的 C++ 应用程序中使用 SQLite。 SQLite 线程模式设置为多线程,以便允许共享单个数据库连接的多个线程。在这种情况下,我是否需要如下所示包装数据库操作?或者这不是必需的?
void SomeClass::someDbOperationOnAThread(void *arg) {
sqlite3_mutex_enter(sqlite3_db_mutex(db));
// Perform some queries on the database
sqlite3_mutex_leave(sqlite3_db_mutex(db));
}
最佳答案
- Multi-thread. In this mode, SQLite can be safely used by multiple threads provided that no single database connection is used simultaneously in two or more threads.
因此您不能为多个线程使用单个连接。
在任何情况下,一个连接只能有一个事务,所以最好为每个线程建立一个单独的连接。
关于c++ - SQLite 多线程互斥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39052151/