2016-07-25 20 views
0

Die Dokumentation erwähnt: https://developer.apple.com/reference/corespotlight/cssearchableindex?language=objcCoreSpotlight Standardindex Threadsicherheit

Im Batch-Modus, der Kunde die Verantwortung für den Schutz der privaten CSSearchableIndex Instanz von den gleichzeitigen Zugriff von mehreren Threads nimmt; gleichzeitige Aufrufe an die Indexinstanz haben undefined Ergebnisse.

Aber es erwähnt nicht, was im Nicht-Batch-Modus passiert. Nehmen wir an, ich benutze den Standardsuchbaren Index und die Indizierung dauert nicht lange (1-2 Sek.). Ich nenne

indexSearchableItems:completionHandler: 

und während diese Indizierung noch im Gange ist, kann ich nennen

indexSearchableItems:completionHandler: 

wieder? Oder sollte ich die standardmäßige Instanz des durchsuchbaren Index vor gleichzeitigem Zugriff schützen?

Antwort

1

Gemäß den Dokumenten, wenn wir einen privaten CSSearchableIndex erstellen, liegt es in unserer Verantwortung, ihn vor dem Zugriff mehrerer Threads zu schützen. Der CSearchableIndex-Standard ist Thread-sicher. Ich habe indexSearchableItems verwendet: completionHandler: auf dem defaultSearchableIndex von mehreren Hintergrundthreads und nie einer Race Condition oder einem Crash gegenübergestellt.

Verwandte Themen