SQLite在多线程环境下的应用

SQLite在多线程环境下的应用,第1张

概述这几天研究了一下 SQLite 这个嵌入式数据库在多线程环境下的应用,感觉里面的学问还挺多,于是就在此分享一下。 先说下初衷吧,实际上我经常看到有人抱怨SQLite不支持多线程。而在iOS开发时,为了不阻塞主线程,数据库访问必须移到子线程中。为了解决这个矛盾,很有必要对此一探究竟。 关于这个问题,最权威的解答当然是SQLite官网上的 “Is SQLite threadsafe?” 这个问答。 简 这几天研究了一下 SQLite 这个嵌入式数据库在多线程环境下的应用,感觉里面的学问还挺多,于是就在此分享一下。

先说下初衷吧,实际上我经常看到有人抱怨sqlite不支持多线程。而在iOS开发时,为了不阻塞主线程,数据库访问必须移到子线程中。为了解决这个矛盾,很有必要对此一探究竟。
关于这个问题,最权威的解答当然是sqlite官网上的 “Is SQLite threadsafe?” 这个问答。
简单来说,从3.3.1版本开始,它就是线程安全的了。而 iOS的SQLite版本 没有低于这个版本的:
3.4.0 - iPhone OS 2.2.1
3.6.12 - iPhone OS 3.0 / 3.1
3.6.22 - iPhone OS 4.0
3.6.23.2 - iPhone OS 4.1 / 4.2
3.7.2 - iPhone OS 4.3
3.7.7 - iPhone OS 5.0
当然,你也可以自己编译最新版本。 只是我发现自己编译出来的3.7.8居然比iOS 4.3.3内置的3.7.2慢了一半,不知道苹果做了什么优化。 总结

以上是内存溢出为你收集整理的SQLite在多线程环境下的应用全部内容,希望文章能够帮你解决SQLite在多线程环境下的应用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1180781.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存