1

您好,感谢您提前提供的帮助,

我看过一些帖子,我对多线程有点困惑。看起来这可能很容易,但是我对编程很陌生,所以我仍在努力掌握这一点。

这是从数据库中提取数据的两个调用,它们需要永远保持原样......所以我正在考虑对这些进行多线程处理,直到我可以学习如何为此构建核心数据。现在我正在使用 sqllite 并且数据库涉及 10,000 多个食谱......所以不像我想要的那样快如闪电......

请让我知道您的想法,以及我如何使这些可能同时发生?(如果可能的话)

先感谢您。

requestCount++;
[[DataPuller sharedDataPuller] getAllDeletedRecipeList];
[DataPuller sharedDataPuller].target = self;


requestCount++;
[[DataPuller sharedDataPuller] getAllRecipesList];
[DataPuller sharedDataPuller].target = self;
4

2 回答 2

2

如果您正在使用 SQLite,您可能需要考虑使用FMDB,它 (a) 让您摆脱sqlite3调用的麻烦;并且 (b) 提供一个FMDatabaseQueue允许您协调来自多个队列的查询,以便数据操作不会相互绊倒。

话虽如此,您建议您遇到重大的性能问题,您希望通过转向 Core Data 或使用 SQLite 进行多线程来解决这些问题。这不太可能。本地数据库操作的性能不佳通常更多地取决于您的应用程序设计(例如,尝试检索所有 10,000 个配方的全部详细信息不太可能是明智的……您可能只想检索唯一标识符,也许只检索那些给定屏幕所需的,然后仅在以后需要时检索给定食谱的详细信息)。对于本地数据库交互,您很少需要考虑多线程实现,而只需设计系统以在演示所需的任何给定点检索尽可能少的信息。

如果您的食谱应用程序出现性能问题,我建议您提交一个更详细的问题,并附上代码示例,以阐明您的特定性能问题。如果多线程不是解决方案的一部分,我也不会感到惊讶。可能,在任何给定点适当使用索引和更明智地检索信息可能更为关键。

于 2012-11-15T06:29:09.423 回答
0

以页面的形式从数据库中获取记录;即每页 20 或 50 个食谱。看看 YouTube 应用程序。在 iPhone 上或查看我的应用程序。HCC助手

于 2012-11-15T04:54:45.253 回答