嗨,谢谢你提前帮忙,
我看过一些帖子,我对多线程感到有点困惑。看起来它可能很简单,但我对编程很新,所以我仍然想要掌握它。
这是从数据库中提取数据的两次调用,它们永远都是这样的......所以我正在考虑多线程这些,直到我可以学习如何为此构建核心数据。现在我正在使用sqllite,数据库涉及10,000 +食谱...所以不要像我想的那样快速闪电......
请让我知道您的想法,以及我如何能够同时实现这些目标? (如果可能的话)
提前谢谢。
requestCount++;
[[DataPuller sharedDataPuller] getAllDeletedRecipeList];
[DataPuller sharedDataPuller].target = self;
requestCount++;
[[DataPuller sharedDataPuller] getAllRecipesList];
[DataPuller sharedDataPuller].target = self;
答案 0 :(得分:2)
如果您正在使用SQLite,您可能需要考虑使用FMDB,其中(a)可以让您摆脱sqlite3
次调用的杂草; (b)提供FMDatabaseQueue
,允许您协调来自多个队列的查询,以便数据操作不会相互偶然发生。
话虽如此,您建议您遇到重大的性能问题,而这些问题是您希望通过转换到Core Data或使用SQLite进行多线程解决的。这不太可能。本地数据库操作性能不佳通常更多地取决于您的应用程序设计(例如,尝试检索所有10,000个配方的全部细节不太明智......您可能只想检索唯一标识符,也许只需要那些给定屏幕所需,然后只在您需要的时候检索给定食谱的细节。对于本地数据库交互,您很少考虑多线程实现,而只是设计系统以在演示文稿所需的任何给定点检索尽可能少的信息。我个人发现,当我与一些远程Web服务进行广泛的交互时,我的数据库驱动的应用程序通常只需要多线程(在这种情况下,它是检索服务器数据并解析那些在单独的线程上的,不一定是数据库操作本身。)
如果您的食谱应用程序出现性能问题,我建议您提交一个更详细的问题,其中包含代码示例,这些问题可以解决您的特定性能问题。如果多线程不是解决方案的一部分,我也不会感到惊讶。可能,在任何给定点适当使用索引和更明智地检索信息可能更为重要。
答案 1 :(得分:0)
以页面形式从数据库中获取记录;即每页20或50个食谱。看看YouTube应用。在iPhone上或看看我的应用程序。 HCCHelper