从SQLite documentation article on multithreading我得到多线程模式“ SQLite可以被多个线程安全地使用,条件是两个或更多个线程不同时使用单个数据库连接线程”。
但它没有解释:在这种模式下,在两个或多个线程中同时执行是不安全的?除了明显的CREATE,INSERT,UPDATE,DROP等查询修改数据库,
那么使用语句(sqlite3_stmt)呢?如果它们与同一个数据库连接,同时使用它们也不安全吗?特别是:
答案 0 :(得分:1)
根据我的理解,在多线程模式下,来自两个或多个线程的sqlite3
对象上的任何操作都是危险的。同样适用于sqlite3_stmt
个对象,因为它们是“{1}}对象的一部分。”
但是,即使在不同的进程中,您也可以(并且通常会)与同一数据库建立多个sqlite3
连接。 SQLite将管理它们之间的并发性。