Mój zmysł z dokumentacji książki adresowej i moje zrozumienie podstawowej implementacji CoreData sugeruje, że książka adresowa powinna być bezpieczna dla wątków, a tworzenie zapytań z wielu wątków nie powinno sprawiać żadnych problemów. Ale mam problem ze znalezieniem jakiejkolwiek jawnej dyskusji na temat bezpieczeństwa wątków w dokumentach. To rodzi kilka pytań:Bezpieczeństwo i wydajność wątku w książce adresowej
- Czy można bezpiecznie używać + sharedAddressBook na wielu wątkach w trybie tylko do odczytu? Uważam, że odpowiedź brzmi "tak".
- Aby uzyskać dostęp do zapisu w wątkach w tle, wydaje się, że zamiast tego należy użyć + książki adresowej (i zapisać zmiany ręcznie). Czy rozumiem to poprawnie?
- Czy ktoś badał wpływ na wydajność wykonywania wielu jednoczesnych zapytań do Książki adresowej na wielu wątkach? Powinno to być bardzo podobne do wykonywania wielu zapytań CoreData na wielu wątkach. Mam wrażenie, że niewiele zyskałbym, robiąc równoległe zapytania, ponieważ zakładam, że będą one serializowane, gdy trafią w SQLLite, ale nie jestem tu pewien.
muszę zrobić dziesiątki zapytań (niektóre złożone) przeciwko adresową i robie tak na wątek tła przy użyciu NSOperation aby uniknąć blokowania UI (który obecnie robi). Moje podstawowe pytanie brzmi: czy sensownym jest ustawienie maksymalnych równoczesnych operacji na wartość większą niż 1 i czy istnieje jakiekolwiek niebezpieczeństwo, jeśli aplikacja może jednocześnie pisać do książki adresowej w innym wątku.
Fakt, że struktura Address Book Framework (nie zawsze tak było) używa Core Data to szczegół implementacji, który należy zignorować i niekoniecznie gwarantuje bezpieczeństwo wątków. Czy można podać łącze do dokumentacji, która mówi, że interfejs API książki adresowej jest bezpieczny dla wątków? Nie mogłem znaleźć polityki dotyczącej wątków podanej w dokumentacji. –
Nie mogę tego również znaleźć. Właśnie o tym mówiłem w pierwszym akapicie. Nie mogę znaleźć żadnych wyraźnych dyskusji na temat gwintowania z AB w jakichkolwiek dokumentach. Ale zakładając, że nie jest bezpieczny dla wątków, powstaje rozległa złożoność, która jest mało prawdopodobna (i nie mogę znaleźć dokumentacji dotyczącej prawidłowego wdrażania), co podnosi pytanie. –
Bez szczególnej gwarancji, że to, lub jej podzbiór, jest bezpieczny dla wątków, musisz być pesymistą i założyć, że tak nie jest. –