2008-12-10 90 views
5

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

回答

11

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

的SQLite says笔者:

与3.5.0版开始,SQLite的强制执行这本身就使用其
自己的内部互斥体,因此应用程序是免费的(尝试)使用
同一个数据库同时连接多个线程。