विफल सुरक्षित इटरेटर वे हैं जो throw
ConcurrentModificationException
नहीं हैं।सुरक्षित इटरेटर्स विफल हो जाते हैं और कमजोर संगत इटरेटर
लेकिन fail safe iterators
और weakly consistent iterators
के बीच क्या अंतर है?
दोनों समान हैं?
विफल सुरक्षित इटरेटर वे हैं जो throw
ConcurrentModificationException
नहीं हैं।सुरक्षित इटरेटर्स विफल हो जाते हैं और कमजोर संगत इटरेटर
लेकिन fail safe iterators
और weakly consistent iterators
के बीच क्या अंतर है?
दोनों समान हैं?
Fail-safe
और Weakly consistent
इटरेटर ConcurrentModificationException
फेंक नहीं देते हैं।
weakly consistent iterators:
संग्रह जो कैस (तुलना और स्वैप) पर भरोसा कमजोर संगत iterators है, जो कुछ है, लेकिन दर्शाते हैं जरूरी सभी परिवर्तनों कि उनके समर्थन संग्रह करने के लिए बनाया गया है के बाद से वे बनाए गए थे की नहीं। उदाहरण के लिए, यदि संग्रह में तत्वों को संशोधित करने से पहले संशोधित किया गया है या हटा दिया गया है, तो यह निश्चित रूप से इन परिवर्तनों को प्रतिबिंबित करेगा, लेकिन सम्मिलन के लिए ऐसी कोई गारंटी नहीं दी गई है।
Fail safe iterator
इटरेटर तंत्र आंतरिक संग्रह डेटा संरचना की एक प्रति बनाता है और तत्वों पर पुनरावृत्त करने के लिए इसका उपयोग करता है। अंतर्निहित डेटा संरचना में परिवर्तन होने पर यह किसी भी समवर्ती संशोधन अपवाद को फेंकने से रोकता है। बेशक, पूरे सरणी की प्रतिलिपि बनाने का ओवरहेड पेश किया गया है।
public CopyOnWriteArrayList(Collection<? extends E> c) {
Object[] elements = c.toArray();
if (elements.getClass() != Object[].class)
elements = Arrays.copyOf(elements, elements.length, Object[].class);
setArray(elements);
}
संदर्भ::
Java Generics and Collections: 11.5. Collections and Thread Safety
Iterators – Fail fast Vs Fail safe
CopyOnWriteArrayList
असफल सुरक्षित इटरेटर है, जो हम आसानी से निर्माता के स्रोत को देखकर देख सकते हैं के साथ ऐसे ही एक कार्यान्वयन है
http://stackoverflow.com/q/14084104/469220 – Vlad
कोई भी समान नहीं है –
http://stackoverflow.com/questions/14084104/concurrenthashmap-returns-a-weakly-consistent-iterator-why-should-we प्रयोग यह किसी भी –