0

我想了解iOS中的串行/併發隊列和線程。我對隊列數據結構以及如何使用有了很好的掌握。iOS中的線程和隊列 - 非NSThread

線程只是在非官方意義上是隊列的抽象嗎?這意味着它們使用隊列數據結構來實現。然後,每個隊列都是一個實際的線程,但是它們充當隊列,以便以先進先出的方式執行進程?

這將代表串行隊列,因爲那些DO確實遵循FIFO,但是然後併發隊列是不同的球類遊戲。你不知道什麼時候執行哪些進程,即使你將它們放在一個隊列中,但實際上只要有可用性,它們就會在不同的線程中被觸發。這意味着隊列實際上可以包含或引用多個線程?

任何幫助或指向資源(不包括蘋果文檔,我目前正在經歷)將不勝感激。

+0

你可以把一個隊列爲稍高層次的概念,一個隊列可以使用一個或多個線程,可以強制執行這些線程一些額外的功能。看一下'dispatch_barrier_async'就可以看到一個隊列的例子,它提供的功能比一些線程本身更多。 –

回答

0

隊列是在iOS中創建線程的方法之一。

線程是當前執行的代碼。 主線程(線程0)實際上是在應用程序生命週期中始終運行的單線程。其他人,如果他們不附加在(1){code ...}上有類似的NSRunLoop,那麼他們將在代碼執行後立即完成。

維基百科應該是您的朋友:https://en.wikipedia.org/wiki/Thread_(computing)