回答

1

按照我已添加的評論,這取自Apple doc。大膽的我把重點放在你要找的東西上。

串行隊列(也稱爲專用調度隊列)在它們被添加到隊列中的順序以時間執行一個任務 。當前正在執行的任務的 在由調度隊列管理的不同線程上運行(可以改變從任務到任務的 )。 串行 隊列通常用於同步訪問特定資源

如果您使用的是併發隊列,您可能會遇到競爭情況。例如,您可以使用調度屏障來阻止它。有關更多詳細信息,請參閱Grand Central Dispatch In-Depth: Part 1/2

對於NSOperationNSOperationQueue同樣適用。 NSOperationQueue可與maxConcurrentOperationCount設置爲1串聯。另外,通過操作使用依賴關係,可以將訪問同步到共享資源。

+0

謝謝您花時間回答。我會通過鏈接。正如你大膽地指出的那樣,每個人都說,但是如果在串行隊列上運行兩個異步任務來改變公共資源,那麼我們可能會面臨競爭條件? – Kishoretheju

+0

@Kishoretheju沒有,因爲資源可以連續觸摸。第一個任務訪問資源,當這個完成時,另一個任務可以觸摸它。通過構建,這是由像串行隊列這樣的串行結構實施的。 –

+0

謝謝。將閱讀更多關於串行隊列。 – Kishoretheju