मेरे पास सिंक्रनाइज़ सूची के संबंध में एक सामान्य प्रश्न है।
का कहना है कि निर्माता में मैं एक सूचीजावा - सामान्य सिंक्रनाइज़लिस्ट प्रश्न
List synchronizedList = Collections.synchronizedList(list);
createing रहा हूँ और मैं एक विधि सूची में एक वस्तु कहते है की सुविधा देता है।
public void add(String s){
synchronizedList.add(s)
}
एक और धागा है कि हर कुछ सेकंड की जाँच करता है अगर वहाँ कुछ ऐसी पंक्तियां हैं, एक फ़ाइल में डंप और उन सब को हटा देता है।
अब कहें कि मैं प्रत्येक पंक्ति को दोहराता हूं और इसे डीबी में सहेजता हूं। सभी पुनरावृत्ति के बाद मैं सूची साफ़ करता हूं।
मल्टीथ्रेड समर्थन मेरी मदद कैसे करता है?
अन्य धागे में स्पष्ट() से पहले मैं सूची में एक तत्व जोड़ सकता हूं।
जब तक कि मैं खुद को लॉक प्रबंधित नहीं करता (जिसे मैं वास्तव में इसके लिए एक सिंक की गई सूची की आवश्यकता नहीं है) यह स्वयं।
सभी तीन उत्तरों के राज्य के रूप में, सिंक्रनाइज़ सूची का अर्थ है कि उस सूची के सभी संचालन परमाणु होने की गारंटी है या अलग-अलग विधि कॉलों तक सीरियल पहुंच की गारंटी है। मुझे अपने सहयोगी से यह पूछना पड़ा कि इसका क्या मतलब है। तो इसका मतलब है कि सूची पर ऑपरेशन (उपरोक्त कोड स्निपेट से) 'सिंक्रनाइज़ लिस्ट.size() 'और' सिंक्रनाइज़लिस्ट लिस्ट.एड '' समानांतर में नहीं हो सकता है। यह कुछ लोगों के लिए स्पष्ट नहीं है जो इस धागे को पढ़ रहे हैं। तो दूसरों को समझने में मदद करने के लिए जो समझ में नहीं आता है। धन्यवाद @ व्हाइटफैंग 34, @ जेबी-निजेट और @khachik नीचे स्पष्टीकरण के लिए। –