2014-05-10 139 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外,你可以在任何你想要的地方運行任何東西。