मैं हाल ही में एक साक्षात्कार में था और तकनीकी लड़के ने मुझे एक आवेदन थ्रेड-सुरक्षित बनाने के बारे में पूछा।थ्रेड सुरक्षा ऑब्जेक्ट - स्थिर या नहीं?
ठीक है, lock()
सही ढंग से समझाते हुए, उन्होंने कहा कि वस्तु को स्थैतिक मानना अच्छा नहीं है।
private static readonly object _syncLock = new object();
उन्होंने दावा किया कि कारण यह है कि स्थैतिक उस वस्तु को धागे के लिए धीमा कर देता है अगर यह स्थिर नहीं है। क्या ये सच है?
संपादित करें: फिर भी मुझे अभी भी यकीन नहीं है। इन तीन दृष्टिकोणों के बीच क्या अंतर है?
private static readonly object _syncLock = new object();
public static readonly object _syncLock = new object();
private readonly object _syncLock = new object();
आपकी व्याख्या बहुत अधिक समझ में आता है, हालांकि इसे एक निजी स्थिर मत भूलना। बाहर से कुछ भी वैसे भी इसका उपयोग नहीं कर सकता है। – Houman
यही मैंने सोचा था। लॉक ऑब्जेक्ट को गैर स्थैतिक के रूप में लॉक के दायरे को बदल देगा। –