iphone - 在同一后台线程上运行FMDB进程?

标签 iphone multithreading fmdb

我在使用fmdb读取数据并将数据写入同一数据库时遇到问题。

我的应用程序中有一些实例,其中一个类将在后台线程上将数据写入数据库,而另一个类将从主线程上的同一数据库读取数据,读取和写入过程均处理相当大的数据,例如几百个NSDictionary 。

我听说fmdb不是“线程安全的”,当我在上述情况下尝试读写时,这会使我的应用程序崩溃。我也听说过建议在同一线程上运行2个fmdb进程,以使应用程序不会崩溃。

我尝试过在两个后台线程中运行它们(使用NSInvocationOperation),但是它崩溃了,我意识到它们实际上是在单独的后台线程上运行,这导致了冲突。

所以问题是,如何使所有fmdb进程在同一后台线程上运行,以免它们使我的应用程序崩溃?

还是有其他替代方法可以处理我的SQL数据?

*很抱歉,如果我没有清楚解释,愿意澄清。

谢谢阅读!

最佳答案

FMDatabaseQueue是专门为这种情况制作的:https://github.com/ccgus/fmdb

尝试一下,如果没有用,请告诉我。

关于iphone - 在同一后台线程上运行FMDB进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7751240/

相关文章:

ios - 如何检测 iOS 离开全屏视频?

iphone - 从越狱的iPhone上的控制台打开wifi/蓝牙/网络共享

java - 使用JAVA线程并发访问hsqldb

c# - 遇到锁时如何停止线程?

java - 如何在 Java 中决定 wait() 的循环条件

iphone - UIActivityIndi​​catorView 无响应

iphone - 使用 DecimalPad 时如何关闭键盘

iphone - 使用 FMDB 执行 sqlite 查询时遇到问题

iphone - FMDB EXC_BAD_ACCESS 插入数据库时

iOS sqlcipher fmdb “File is encrypted or is not a database”