मैं समझने की कोशिश कर रहा हूं कि वास्तव में thread_local क्वालीफायर कैसे काम करता है और जहां वास्तविक चर संग्रहीत किया जाता है? यह सी ++ पर है।सी ++ - thread_local चर कहाँ संग्रहीत हैं?
कहें कि मेरे पास एकाधिक सदस्य चर के साथ एक कक्षा है। कक्षा का एक objet ढेर पर तत्काल है और वस्तु 2 धागे के बीच साझा किया जाता है। उचित लॉकिंग तंत्र का उपयोग यह सुनिश्चित करने के लिए किया जाता है कि एक ही समय में एक सदस्य चर पर दो थ्रेड नहीं हो रहे हैं।
कुछ थ्रेड विशिष्ट वस्तुओं का ट्रैक रखने के लिए धागे की आवश्यकता है। इसलिए मैं क्लास घोषणा के रूप में एक ही हेडर फ़ाइल में thread_local चर बनाने की सोच रहा हूं। जैसा कि मैं समझता हूं, दोनों धागे को इस चर की अपनी प्रति प्राप्त होगी, सही? स्मृति में संग्रहीत धागा स्थानीय चर कहाँ है? यदि डेटा सेगमेंट, निष्पादन के दौरान सही चर कैसे उठाया जाता है?
मुझे लगता है कि यह कार्यान्वयन परिभाषित किया गया है। – drescherjm
जहां _any_ चर संग्रहित हैं, यह कार्यान्वयन विशिष्ट है। –
आम कार्यान्वयन क्या करते हैं? जीसीसी कहो। आम तौर पर, हम ढेर पर होने के लिए ढेर, स्थानीय चर और फ़ंक्शन तर्कों पर होने के लिए मॉलोक/नए का उपयोग करके गतिशील आवंटन पर विचार कर सकते हैं। अधिकांश कार्यान्वयन इस से चिपके रहते हैं। इस संदर्भ को देखते हुए, thread_local चर कहाँ जाते हैं? –