NSEnumerationConcurrent是否保证多线程?

时间:2011-12-23 23:13:29

标签: multithreading cocoa

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

编辑:其他问题

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

1 个答案:

答案 0 :(得分:5)

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

并且,是的,例如,如果你使用 - [NSArray enumerateObjectsWithOptions:usingBlock:]那么在枚举完成之前调用将不会返回。

如果指定NSEnumerationConcurrent,当前实现似乎会在全局普通优先级GCD队列上安排这些块。我确信不能保证永远是真的。

希望有所帮助。