1

我在我的 iOS 应用程序中使用 SQLite 3。它需要大量的读/写操作,其中许多是同时尝试的。这些函数中的大多数都在不同的线程中运行,但是访问的是同一个数据库。

以下是我想到的几种方法:

  1. 在每次数据库访问(读/写)时,我都会将标志设置为database_open=YES,如果发现为真,我会在几秒钟内重试。我可以把函数放在数据库层本身。

  2. 在同一个线程中运行所有数据库操作。但是,我的用例是我需要等待一些 HTTP 调用完成并将检索到的数据存储到 SQLite 中。对于这种方法,我必须使所有这些服务器调用也同步。不是最好的主意。

如果我想错了方向,请提出建议。

4

1 回答 1

1

SQLite支持来自多个线程的并发访问。只需配置 SQLITE_CONFIG_MULTITHREAD 模式,并从每个线程单独打开数据库。

于 2013-10-07T13:15:12.423 回答