NSOperationQueue的默认值maxConcurrentOperationCount

lak*_*esh 26 objective-c nsoperation nsoperationqueue ios

正如标题所示,NSOperationQueue的maxConcurrentOperationCount的默认值是多少?

是否设置为1的值?

iDe*_*Dev 30

文档中,

使用setMaxConcurrentOperationCount:方法在接收器上显式设置的最大并发操作数.如果未显式设置任何值,则此方法默认返回NSOperationQueueDefaultMaxConcurrentOperationCount.

就是这样NSOperationQueueDefaultMaxConcurrentOperationCount.如果设置了此选项,它将根据可用处理器的数量和其他相关因素选择适当的值.

这是如何定义的:

enum {
  NSOperationQueueDefaultMaxConcurrentOperationCount = -1
};
Run Code Online (Sandbox Code Playgroud)

NSOperationQueueDefaultMaxConcurrentOperationCount:默认的最大操作数由NSOperationQueue对象根据当前系统条件动态确定.

  • 如果将其设置为0或更多,则将采用该值.但是,如果将其设置为NSOperationQueueDefaultMaxConcurrentOperationCount,它将尝试动态获取它. (3认同)
  • 意思是说NSOperationQueueDefaultMaxConcurrentOperationCount不固定吧? (2认同)
  • 这取决于系统条件,即文档所述.所以它会根据它选择一个合适的值. (2认同)