我想使用NSOperationQueue設置一個序列化的任務隊列,但我對文檔中討論的術語有點困惑。NSOperationQueue和併發與非併發
在一個的NSOperation 對象的上下文中,併發的條款和 非併發不一定 指並排側執行的 線程。相反,非併發的 操作是使用 執行的環境,它是爲 提供的環境,而並行操作是 ,負責設置其自己的 執行環境。
什麼意思建立「自己的運行環境「?
我的NSOperation派生的任務需要在它們被添加到隊列的順序依次執行。
因此,我認爲,這意味着一個'非併發'的操作,所以我會爲需要完成的工作實現'main',並返回'isConcurrent'的NO。另外,NSOperationQueue的'setMaxConcurrentOperationCount'將被設置爲1。原因我沒有設置NSOperation依賴這些任務之間的關係是因爲他們被插入到隊列中的順序是他們應該完成的順序。
這些假設是否正確?
如果您將NSOperationQueue上的MaxConcurrentOperationCount設置爲1,則不一定需要使用依賴項。按照我的經驗,它按照它們添加到隊列中的順序處理操作。但是,您可以設置依賴項以保證安全。 – 2009-10-30 04:06:18
該文檔指出,將最大計數單獨設置爲1不能保證FIFO順序。 NSOperationQueue也考慮到優先事項和一些其他事情來確定順序。 – 2013-04-03 07:19:51