2011-03-04 8 views
9

मैंने नंगे को FindBugs की चेतावनी को सूचित किया है। नीचे मेरा कोड है।FindBugs की नग्न सूचना चेतावनी कैसे ठीक करें?

synchronized (this) { 
     this.notify(); 
    } 

"यह" "सार्वजनिक वर्ग नियंत्रक थ्रेड फैलाता है"। चेतावनी को कैसे ठीक करें ?? मुझे इसके बारे में कोई जानकारी नहीं है।

अग्रिम धन्यवाद।

+0

क्या यह आपको नहीं बताता कि वास्तव में चेतावनी क्या है? (और क्या आपने थ्रेड को विस्तारित करने के बजाय रननेबल को लागू करने पर विचार किया है?) –

+0

बस सिंक करने के लिए थ्रेड का उपयोग न करें। पर। सिंक करने के लिए धागे का उपयोग करने पर अधिक: http://stackoverflow.com/questions/5121173/java-threads-wait-and-notify-methods/5121267#5121267 – bestsss

उत्तर

9

नग्न अधिसूचना चेतावनी का अर्थ है कि अधिसूचना() विधि का उपयोग करने का तात्पर्य है कि कुछ अन्य धागे कुछ परिवर्तनशील राज्य को बदलने के लिए इंतज़ार कर रहे हैं, और अधिसूचित होने की प्रतीक्षा कर रहे हैं। लेकिन आपके सिंक्रनाइज़ किए गए ब्लॉक ने किसी भी परिवर्तनीय स्थिति को संशोधित नहीं किया है, और इसलिए यह अजीब लगता है कि आपको अधिसूचना की आवश्यकता होगी। यदि आपने सिंक्रनाइज़ किए गए ब्लॉक के बाहर किसी ऑब्जेक्ट की स्थिति को संशोधित किया है, तो यह संदिग्ध लगता है कि यह कोड थ्रेड सुरक्षित है, क्योंकि इस डेटा को पढ़ने वाला कोई अन्य धागा है

संबंधित मुद्दे