2014-05-10 105 views
-1

我想澄清一点。 我知道我需要在主线程中更新UI。还有别的吗?使用主线和后台线程

我需要做的主线程和后台线程?

+0

可能重复[帮助iOS上的多线程?](http://stackoverflow.com/questions/4360591/help-with-multi-threading-on-ios) –

回答

1

除了UI更新之外,作为一个更广泛的线程安全策略,人们通常还会将其模型更新作为简单同步技术派发到主线程。

Synchronization最终是确保对象处于逻辑一致状态的过程,即当一个对象在一个线程上使用时,它不会同时被某个其他线程突变。传统上,人们可以通过使用锁来实现此目的(例如NSLock@synchronized等),但您也可以通过将与特定对象的所有交互分派到串行队列来实现此目的。虽然您可以用专用的串行队列替换锁,但在很多情况下,将主队列中的对象的所有更新都派发到同一个位置也很容易。事实证明,这是一种便捷的方式来同步您的模型对象,否则这些对象可能会被单独的线程使用/突变。

欲了解更多信息,请参阅Eliminating Lock-Based Code部分从主题客场迁移并发编程指南章。

0

这一切都要看。 现代操作系统利用多核或虚拟CPU,所以当你运行你的应用程序时,操作系统定义在哪里运行,通常你的程序运行在多个线程中。 如果有数据依赖性,那么你应该在特定的线程中运行,除非你在后台或不同的线程中运行东西,那么你可以实现通知,以确保你需要的数据在你需要时准备好。您还应该考虑定义属性的不同方式的线程安全性。所以...除了主要的UI外,你可以在任何你想要的地方运行任何东西。