मेरे पास एक कक्षा है जो एक म्यूटेबल सरणी का उपयोग करती है जिसे कई पढ़ने के बाद संशोधित किया जाता है (नई वस्तुएं आती हैं)।मल्टीथ्रेडेड लिखने के साथ एनएसएमयूटेबलएरे की प्रतिलिपि बनाने से बचें
समस्या यह है कि जब सरणी को बदलने के लिए समय आता है, तो पढ़ना जारी रहता है।
वर्तमान में इस मुद्दे को हर बार यह कुछ पढ़ता है यह इतना एक प्रति से अधिक करता है से बचने के लिए:
[[theArray copy] operation] //operation being indexOfObject:, objectAtIndex: objectsAtIndexes:, etc.
प्रति वास्तव में महंगा होता जा रहा है, के लिए (उन हर समय कोई जरूरत नहीं है, खासकर जब जब सरणी है उत्परिवर्तित नहीं किया जा रहा है)।
उत्परिवर्तित होने पर इसे एक्सेस करने में देरी करने के लिए सरणी को कैसे लॉक कर सकता हूं? इस मामले में
आप इस सरणी को कक्षा की अपनी संपत्ति के रूप में क्यों नहीं बनाते हैं और घोषणा के दौरान इसे परमाणु बनाते हैं तो संकलक धागे के बीच किसी प्रकार के सिंक्रनाइज़ेशन का ख्याल रखेगा। – kidsid49