2011-10-09 61 views

回答

0

NSOperationQueue,運行時,其當前NSOperation的執行是以一個單獨的線程。

如果您通過1傳遞-setMaxConcurrentOperationCount:,那麼在任何給定時間您都可以保證只有一個NSOperation在隊列中運行。 (即串行隊列)。

否則,你的NSOperationQueue可能有多達NSOperationQueueDefaultMaxConcurrentOperationCount線程在任何給定的時間運行。

+3

隊列數量,併發操作數量和系統線程使用率之間沒有嚴格的一對一關係。 NSOperationQueue是建立在GCD的頂部(如10.6和iOS),因此,會產生如由系統確定其線程使用的限制。 –

+1

@AshleyClark我看到這對NSOperationQueue類參考文檔:注:在iOS系統中,操作隊列不使用大中央調度來執行操作。他們爲非併發操作創建單獨的線程,並從當前線程啓動併發操作。有關併發和非併發操作與執行方式之間區別的討論,請參見NSOperation類參考。 – nonamelive

+0

@nonamelive好吧,看起來我是對的......? ;) –