Cảm giác của tôi từ tài liệu Sổ Địa chỉ và sự hiểu biết của tôi về triển khai CoreData cơ bản cho thấy Sổ Địa chỉ phải là chủ đề an toàn và việc truy vấn từ nhiều luồng sẽ không gây ra vấn đề gì. Nhưng tôi gặp khó khăn khi tìm bất kỳ cuộc thảo luận rõ ràng về an toàn luồng trong tài liệu. Điều này đặt ra một vài câu hỏi:Địa chỉ an toàn và hiệu suất của cuốn sách
- Có an toàn để sử dụng + sharedAddressBook trên nhiều chủ đề cho quyền truy cập chỉ đọc không? Tôi tin rằng câu trả lời là có.
- Để ghi quyền truy cập trên chủ đề nền, có vẻ như bạn nên sử dụng + addressBook thay thế (và lưu các thay đổi của bạn theo cách thủ công). Tôi có hiểu điều này một cách chính xác không?
- Có ai đã điều tra tác động hiệu suất của việc thực hiện nhiều truy vấn đồng thời tới Sổ địa chỉ trên nhiều luồng không? Điều này sẽ rất giống với hiệu suất của việc thực hiện nhiều truy vấn CoreData trên nhiều luồng. Ý nghĩa của tôi là tôi sẽ thu được ít bằng cách thực hiện các truy vấn song song vì tôi cho rằng chúng sẽ tuần tự hóa khi chúng đạt đến SQLLite, nhưng tôi không chắc chắn ở đây.
Tôi cần thực hiện hàng tá truy vấn (một số phức tạp) đối với AddressBook và đang thực hiện trên luồng nền bằng NSOperation để tránh chặn giao diện người dùng (hiện tại). Câu hỏi cơ bản của tôi là liệu có nên thiết lập các hoạt động đồng thời tối đa thành một giá trị lớn hơn 1 hay không và liệu có bất kỳ nguy hiểm nào khi làm như vậy nếu ứng dụng cũng có thể ghi vào AddressBook cùng một lúc trên một chuỗi khác không.
Hiện tại, Khung danh bạ (trường hợp không phải lúc nào) sử dụng Dữ liệu cốt lõi là chi tiết triển khai bạn nên bỏ qua và không nhất thiết đảm bảo an toàn luồng. Bạn có thể cung cấp liên kết đến tài liệu nói rằng API danh bạ là chuỗi an toàn không? Tôi không thể tìm thấy chính sách luồng được nêu trong tài liệu. –
Tôi không thể tìm thấy nó. Đó là điểm tôi đã làm trong đoạn đầu tiên. Tôi không thể tìm thấy bất kỳ cuộc thảo luận rõ ràng về luồng với AB trong bất kỳ tài liệu nào. Nhưng giả sử nó không phải là luồng an toàn tạo ra sự phức tạp rộng rãi mà không cần thiết (và tôi không thể tìm thấy tài liệu về cách thực hiện đúng), do đó nâng cao câu hỏi. –
Vắng mặt một bảo đảm cụ thể bởi khuôn khổ mà nó, hoặc một tập con của nó, là an toàn chỉ, bạn phải bi quan và cho rằng nó không phải là bi quan. –