在这种情况下,SQLite线程是否安全?

时间:2008-12-10 03:44:04

标签: multithreading sqlite

我需要通过单个对象从多个线程进行数据库访问操作,该对象包含数据库连接。我从SQLite3的网站上读到,说'sqlite3结构只能在调用sqlite3_open()的同一个线程中使用它来创建它。您无法在一个线程中打开数据库,然后将句柄传递给另一个线程以供其使用'。我想知道在我的情况下,是否存在线程不安全的威胁?

1 个答案:

答案 0 :(得分:11)

如果使用-DSQLITE_THREADSAFE编译SQLite库,则可以使用更新的SQLite 3版本。

SQLite的作者says

从版本3.5.0开始,SQLite使用其执行此功能 自己的内部互斥,因此应用程序可以自由地(尝试)使用 来自多个线程的同一数据库连接。