पता पुस्तिका प्रलेखन से मेरी समझ और अंतर्निहित कोरडाटा कार्यान्वयन की मेरी समझ से पता चलता है कि पता पुस्तिका थ्रेड सुरक्षित होनी चाहिए, और एकाधिक धागे से प्रश्न बनाने से कोई समस्या नहीं होनी चाहिए। लेकिन मुझे दस्तावेज़ों में थ्रेड सुरक्षा की कोई स्पष्ट चर्चा खोजने में परेशानी हो रही है। इससे कुछ प्रश्न उठते हैं:पता पुस्तिका थ्रेड सुरक्षा और प्रदर्शन
- क्या केवल पढ़ने के लिए उपयोग के लिए एकाधिक थ्रेड पर + साझा एड्रेसबुक का उपयोग करना सुरक्षित है? मेरा मानना है कि जवाब हाँ है।
- पृष्ठभूमि धागे पर लेखन-पहुंच के लिए, ऐसा लगता है कि आपको इसके बजाय + एड्रेसबुक का उपयोग करना चाहिए (और मैन्युअल रूप से अपने परिवर्तनों को सहेजना चाहिए)। क्या मैं इसे सही ढंग से समझता हूं?
- क्या किसी ने एकाधिक धागे पर पता पुस्तिका में एकाधिक एक साथ प्रश्न बनाने के प्रदर्शन प्रभाव की जांच की है? यह एकाधिक धागे पर एकाधिक कोरडाटा क्वेरी बनाने के प्रदर्शन के समान होना चाहिए। मेरी समझ यह है कि मैं समानांतर प्रश्न बनाकर थोड़ा सा लाभ प्राप्त करूंगा क्योंकि मुझे लगता है कि जब वे SQLLite हिट करते हैं तो वे क्रमबद्ध होंगे, लेकिन मैं यहां निश्चित नहीं हूं।
मुझे एड्रेसबुक के खिलाफ दर्जनों प्रश्न (कुछ जटिल) बनाने की आवश्यकता है और यूआई को अवरुद्ध करने से बचने के लिए NSOperation का उपयोग करके पृष्ठभूमि थ्रेड पर ऐसा कर रहा हूं (जो वर्तमान में यह करता है)। मेरा अंतर्निहित प्रश्न यह है कि अधिकतम समवर्ती संचालन को 1 से बड़े मान पर सेट करना समझ में आता है, और क्या ऐसा करने में कोई खतरा है यदि एप्लिकेशन किसी अन्य थ्रेड पर एक ही समय में एड्रेसबुक पर भी लिख रहा हो।
कि पता पुस्तिका फ्रेमवर्क वर्तमान में (यह हमेशा मामला नहीं रहा है) कोर डेटा का उपयोग एक कार्यान्वयन विवरण है जिसे आपको अनदेखा करना चाहिए, और यह आवश्यक रूप से थ्रेड-सुरक्षा की गारंटी नहीं देता है। क्या आप दस्तावेज के लिए एक लिंक प्रदान कर सकते हैं जो कहता है कि पता पुस्तिका API थ्रेड सुरक्षित है? मैं प्रलेखन में बताई गई थ्रेडिंग नीति को खोजने में असमर्थ था। –
मैं इसे खोजने में असमर्थ हूं। यही वह बिंदु है जो मैं पहले पैराग्राफ में बना रहा था। मुझे किसी भी दस्तावेज़ में एबी के साथ थ्रेडिंग की कोई स्पष्ट चर्चा नहीं मिल रही है। लेकिन यह मानते हुए कि यह थ्रेड सुरक्षित नहीं है, वह जटिल जटिलता पैदा करता है जिसकी संभावना नहीं है (और मुझे उचित रूप से कार्यान्वित करने के तरीके पर दस्तावेज़ीकरण नहीं मिल रहा है), इस प्रकार सवाल उठा रहा है। –
फ्रेमवर्क द्वारा एक विशेष गारंटी अनुपस्थित है, या इसका सबसेट, थ्रेड-सुरक्षित है, आपको निराशावादी होना चाहिए और मान लें कि यह नहीं है। –