我需要通过单个对象从多个线程进行数据库访问操作,该对象保存数据库连接.我从SQLite3的网站上读到,说'sqlite3结构只能在调用sqlite3_open()的同一个线程中使用它来创建它.您无法在一个线程中打开数据库,然后将句柄传递给另一个线程以供其使用'.我想知道在我的情况下,是否存在线程不安全的威胁?
如果使用-DSQLITE_THREADSAFE编译SQLite库,则可以使用最新的SQLite 3版本.
SQLite的作者说:
从版本3.5.0开始,SQLite使用
自己的内部互斥锁强制执行此操作,因此应用程序可以自由地(尝试)同时使用
来自多个线程的相同数据库连接.