前段时间做SQLITE3的增删改,需要考虑接口被多线程调用,于是看了下SQLITE3 的 Help Doc , 发现有些函数 (sqlite3_open_v2(), sqlite3_prepare_v2())是用来进行多线程的但是没看明白(英语不好啊,弱暴了),并且低版本的SQLITE3貌似并不支持sqlite3_open_v2()等函数.于是就放弃了.
sqlite3_open_v2 中 有个参数 是 SQLITE_OPEN_NOMUTEX 是用来标记多线程的
但是必须考虑多线程,首先想到的就是 pthread_mutex_lock() doit pthread_mutex_unlock()
还有一种方式就是
do{
}while(ret == SQLITE_BUSY)
这种就是靠SQLITE3内部锁,这种方法我觉得比较好
本文探讨了在使用SQLite3数据库时如何处理多线程问题。介绍了两种主要的方法:一种是使用pthread_mutex_lock()和pthread_mutex_unlock()进行锁定;另一种是通过do...while(ret==SQLITE_BUSY)循环利用SQLite3内部锁机制。
4548

被折叠的 条评论
为什么被折叠?



