सी ++ में, जब आपके पास स्थिर सदस्य फ़ंक्शन में स्थानीय चर होते हैं, तो क्या इसका मतलब यह है कि वे स्थानीय चर भी अंतर्निहित स्थिर हैं या क्या वे वास्तव में स्थानीय हैं?स्थैतिक सदस्य फ़ंक्शन और थ्रेड-सुरक्षा
उदाहरण:
static void myClass::somefunc(int someint)
{
int myint = someint; // is myint really a local variable or does it change due to the static qualifier at function level?
}
इसके अलावा, एक थ्रेड पूल इस समारोह चलने से अलग सूत्र, मींट एक ताला द्वारा संरक्षित करने की आवश्यकता है? यह मानते हुए कि इसे पारित सभी मूल्य अलग हैं और एक-दूसरे से कोई संबंध नहीं हैं।
संपादित करें: उत्तर के लिए Thanx। अब क्या होगा यदि मैं boost::shared_ptr<T>
में पास हुआ, यह जानकर कि यह ऑब्जेक्ट किसी अन्य थ्रेड द्वारा समवर्ती रूप से उपयोग नहीं किया जा रहा है? (सुनिश्चित नहीं है कि कोई वास्तव में गारंटी दे सकता है, या आप कर सकते हैं?)
मुझे लगता है कि एक कच्चे पीआरटी पास हो गया है, अगर इसे पूरी तरह इस्तेमाल किया जा रहा है, तो कुछ सुरक्षा की आवश्यकता होगी?
आप स्थिर होने दो पूरी तरह से अलग अलग अर्थ से उलझन में हैं। आप अकेले नहीं हैं, शायद यही कारण है कि एक स्टैंडअलोन फ़ंक्शन पर स्थैतिक अब बहिष्कृत है। – Suma