हैं मैं "मजबूत सूचक" और "कमजोर सूचक" की धारणा के साथ उलझन में हूँ। डायने Hackborn खुद कहा कि:क्या मजबूत संकेत और कमजोर संकेत
वस्तु के आसपास है, जबकि वहाँ मजबूत संकेत दिए गए हैं रहेगा; यह एक बार अंतिम रिलीज होने के बाद नष्ट हो गया है। आप कमजोर सूचक के साथ तुलना कर सकते हैं तुलनात्मक और मजबूत सूचक को बढ़ावा देने का प्रयास कर रहा है; बाद में असफल हो जाएगा यदि ऑब्जेक्ट पर कोई अन्य मजबूत पॉइंटर्स नहीं हैं।
कौन सा मेरे लिए काफी स्पष्ट नहीं है। क्या एक मजबूत सूचक एक (boost::
) साझा सूचक के बराबर है? और एक कमजोर सूचक की भूमिका क्या है यदि वह सिर्फ एक मजबूत सूचक को बढ़ावा देने का प्रयास करने के लिए है? जैसे, हमें कमजोर और मजबूत पॉइंटर्स की आवश्यकता कब होती है?
अद्यतन:
आप हर किसी को धन्यवाद, लेकिन मैं एंड्रॉयड के कर्नेल sp
और wp
के बारे में विशेष रूप से पूछ रहा हूँ, और वे सभी पर जावा के संदर्भ के साथ कोई लेना देना नहीं है।
असल में मैं यहाँ http://www.androidenea.com/2010/03/share-memory-using-ashmem-and-binder-in.html कोड दरार करने के कोशिश कर रहा हूँ और वास्तव में sp
के उपयोग और समझ में नहीं आता wp
अद्यतन:
वास्तविक जवाब स्वीकार किए जाते हैं की टिप्पणी में निहित है जवाब। Gabe Sechan के लिए धन्यवाद:
मजबूत और कमजोर संकेत दिए गए विभिन्न स्मार्ट सूचक कार्यान्वयन इतने लंबे समय के रूप में कम से कम एक मजबूत सूचक संदर्भ में यह कर रहे हैं और एक ही बात के बारे में करते हैं जब एक सूचक क्षेत्र से बाहर चला जाता है, ऐसा नहीं होगा मुक्त हो जाओ यदि केवल कमजोर पॉइंटर्स (या कुछ भी नहीं) संदर्भ होंगे। चेक किया जाता है जब भी इसका एक मजबूत या कमजोर संदर्भ उतर जाता है।
यदि मेरे पास एक ही ऑब्जेक्ट का संदर्भ देने वाले 10 कमजोर पॉइंटर्स हैं, और में से कोई 10 गुंजाइश से बाहर हो जाता है, तो वस्तु नष्ट हो जाएगी? जबकि मजबूत पॉइंटर्स के साथ, केवल तभी जब उनमें से सभी 10 गुंजाइश से बाहर हो जाएंगे तो ऑब्जेक्ट नष्ट हो जाएगा?
हाँ, लगभग। यदि आप केवल इतना है 10 कमजोर संकेत है, यह शायद क्षेत्र से बाहर पहले से ही चला गया होता, जब पिछले मजबूत सूचक दायरे से बाहर चला गया। कार्यान्वयन यह एक छोटे के आसपास लंबे समय तक है, जबकि रहना हो, तो अतिरिक्त स्मृति की अनुमति दे सकता है, लेकिन यह कटा हुआ हो जाएगा अगर आप एक कम स्मृति हालत में जाना है और इसे नहीं लग उनके कार्यान्वयन की तरह है कि उसकी बोली से उन्नत है। और इस के उपयोग अभी भी मुख्य रूप से यह मोटे तौर पर एक बढ़ावा shared_ptr के बराबर है caching- और weak_ptr को बढ़ावा देने है। तो मूल रूप से, एक कमजोर सूचक में ऑब्जेक्ट हो सकता है, यह संदर्भ किसी भी समय दूर हो जाता है।
असल में मैं वैसे भी एंड्रॉयड के कर्नेल ताकि कोई जावा प्रोग्रामिंग कर रहा हूँ, धन्यवाद इस अवधारणा – miller