क्या कोई सामान्य तरीका या नियम निकलता है जिसके द्वारा हम किसी भी अनुप्रयोग के विभिन्न उपयोगिता वर्गों में विशेष रूप से उपयोग की जाने वाली स्थिर विधियों की थ्रेड सुरक्षा सुनिश्चित कर सकते हैं। यहां मैं विशेष रूप से वेब अनुप्रयोगों की थ्रेड सुरक्षा को इंगित करना चाहता हूं।उपयोगिता स्थैतिक विधि की थ्रेड सुरक्षा सुनिश्चित करने के लिए कैसे?
यह अच्छी तरह से पता है कि पैरामीटर के रूप में अपरिवर्तनीय वस्तुओं के साथ स्थैतिक विधियां थ्रेड सुरक्षित हैं और म्यूटेबल ऑब्जेक्ट्स नहीं हैं।
यदि मेरे पास java.util.Date
के कुछ हेरफेर के लिए उपयोगिता विधि है और यह विधि java.util.Date
के उदाहरण को स्वीकार करती है, तो यह विधि थ्रेड सुरक्षित नहीं होगी। फिर पैरामीटर गुजरने के तरीके को बदलने के बिना इसे धागा सुरक्षित कैसे बनाया जाए?
public class DateUtils {
public static Date getNormalizeDate(Date date) {
// some operations
}
}
कक्षा javax.faces.context.FacesContext
उत्परिवर्तनीय भी है? क्या यह इस वर्ग के उदाहरण को ऐसी स्थिर उपयोगिता विधि में पास करने के लिए सुरक्षित है?
कक्षाओं की यह सूची, जिनके उदाहरण पैरामीटर के रूप में पारित किए जा सकते हैं या नहीं पारित किए जा सकते हैं; तो ऐसे उपयोगिता वर्गों के कोड लिखते समय हमें किन बिंदुओं को ध्यान में रखना चाहिए?
क्यों वोट नीचे और एक करीबी अनुरोध? क्या यह एक गलत सवाल है? –
क्या आपने इस स्थिर विधि को 'सिंक्रनाइज़ किया' माना है? –
@AndrewLogvinov हाँ मैंने सोचा है। लेकिन मैं यह जानकर बिना सिंक्रनाइज़ किए गए एक विधि बनाना चाहता हूं कि मैं ऐसा क्यों कर रहा हूं। किस परिस्थितियों में हम एक स्थैतिक विधि सिंक्रनाइज़ कर सकते हैं? –