CoreSpotlight默认索引线程安全

时间:2016-07-25 13:10:08

标签: ios objective-c multithreading thread-safety corespotlight

文件提到: https://developer.apple.com/reference/corespotlight/cssearchableindex?language=objc

  

在批处理模式下,客户负责保护   私有CSSearchableIndex实例来自并发访问   多线程;对索引实例的并发调用有   未定义的结果。

但它没有提到在非批处理模式下会发生什么。因此,假设我使用默认的可搜索索引,索引需要花费非常小的时间(1-2秒)。我打电话给

indexSearchableItems:completionHandler:

虽然此索引仍在进行中,但我可以调用

indexSearchableItems:completionHandler:

再次?或者我应该保护默认的可搜索索引实例免遭并发访问?

1 个答案:

答案 0 :(得分:1)

根据文档,如果我们创建一个私有CSSearchableIndex,那么我们有责任保护它免受多线程访问。默认的CSSearchableIndex是线程安全的。我一直在使用indexSearchableItems:completionHandler:来自多个后台线程的defaultSearchableIndex,从未面临竞争条件或崩溃。