gpt4 book ai didi

iphone - objective-c 中的sqlite3多线程

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:23:49 26 4
gpt4 key购买 nike

我在我的应用程序中使用 dispatch_async 运行后台线程,有时我的主线程和后台线程都同时访问数据库,这给了我一个数据库错误,我试图通过使用 sqlite3_threadsafe() 来解决它总是返回 2 即,我不能在两个线程中使用相同的数据库连接,我希望它返回 1 任何人都可以在这方面帮助我

最佳答案

我认为您采用了错误的方法。无论您如何编译,SQLite 都不是可靠的线程安全 — 参见 the FAQ .即使 SQLite 是为线程安全而编译的,如果任何事务未决或任何语句仍未完成,则不能从多个线程使用同一个数据库。

在我看来,上面关于使用 Grand Central Dispatch 将所有 SQLite 访问集中到一个串行调度队列中的建议是正确的方法,尽管我更可能建议您创建自己的队列而不是使用主队列,原因很简单,当你想等待结果时,你可以可靠地 dispatch_sync。

关于iphone - objective-c 中的sqlite3多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10491989/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com