2011-10-09 64 views

回答

0

NSOperationQueue,运行时,其当前NSOperation的执行是以一个单独的线程。

如果您通过1传递-setMaxConcurrentOperationCount:,那么在任何给定时间您都可以保证只有一个NSOperation在队列中运行。 (即串行队列)。

否则,你的NSOperationQueue可能有多达NSOperationQueueDefaultMaxConcurrentOperationCount线程在任何给定的时间运行。

+3

队列数量,并发操作数量和系统线程使用率之间没有严格的一对一关系。 NSOperationQueue是建立在GCD的顶部(如10.6和iOS),因此,会产生如由系统确定其线程使用的限制。 –

+1

@AshleyClark我看到这对NSOperationQueue类参考文档:注:在iOS系统中,操作队列不使用大中央调度来执行操作。他们为非并发操作创建单独的线程,并从当前线程启动并发操作。有关并发和非并发操作与执行方式之间区别的讨论,请参见NSOperation类参考。 – nonamelive

+0

@nonamelive好吧,看起来我是对的......? ;) –