NSEnumerationConcurrent

NSEnumerationConcurrent

如果在使用块枚举集合时使用NSEnumerationConcurrent,Cocoa是否保证该块将同时执行?还是实际上取决于需要枚举的对象数量?另外,当操作实际上是并发的时,Cocoa如何决定要启动多少个线程?

编辑:附加问题

另一方面,使用NSEnumerationConcurrent选项枚举集合是同步的还是异步的?换句话说,如果枚举代码下面有一些代码,是否仅在所有并发枚举完成后才执行? (线程加入?)

最佳答案

不,NSEnumerationConcurrent不保证这些块将同时执行。

而且,是的,例如,如果您使用-[NSArray enumerateObjectsWithOptions:usingBlock:],则在枚举完成之前该调用不会返回。

如果您指定NSEnumerationConcurrent,当前的实现似乎在全局正常优先级GCD队列上调度这些块。我敢肯定,这不一定总是正确的。

希望能有所帮助。

08-07 06:22