java.util.Collections क्लास विभिन्न कलेक्शन प्रकारों के लिए थ्रेड-सेफ (सिंक्रोनाइज़्ड) रैपर प्रदान करने के लिए स्थैतिक विधियाँ प्रदान करती है।
मुख्य विधियाँ
| क्र.सं. | विधि और विवरण |
|---|---|
| 1 | static <T> Collection<T> synchronizedCollection(Collection<T> c) निर्दिष्ट कलेक्शन द्वारा समर्थित एक सिंक्रोनाइज़्ड (थ्रेड-सेफ) कलेक्शन लौटाता है। |
| 2 | static <T> List<T> synchronizedList(List<T> list) निर्दिष्ट लिस्ट द्वारा समर्थित एक सिंक्रोनाइज़्ड (थ्रेड-सेफ) लिस्ट लौटाता है। |
| 3 | static <K,V> Map<K,V> synchronizedMap(Map<K,V> m) निर्दिष्ट मैप द्वारा समर्थित एक सिंक्रोनाइज़्ड (थ्रेड-सेफ) मैप लौटाता है। |
| 4 | static <T> Set<T> synchronizedSet(Set<T> s) निर्दिष्ट सेट द्वारा समर्थित एक सिंक्रोनाइज़्ड (थ्रेड-सेफ) सेट लौटाता है। |
| 5 | static <K,V> SortedMap<K,V> synchronizedSortedMap(SortedMap<K,V> m) निर्दिष्ट सॉर्टेड मैप द्वारा समर्थित एक सिंक्रोनाइज़्ड (थ्रेड-सेफ) सॉर्टेड मैप लौटाता है। |
| 6 | static <T> SortedSet<T> synchronizedSortedSet(SortedSet<T> s) निर्दिष्ट सॉर्टेड सेट द्वारा समर्थित एक सिंक्रोनाइज़्ड (थ्रेड-सेफ) सॉर्टेड सेट लौटाता है। |
उदाहरण
import java.util.Collection;
import java.util.Collections;
import java.util.Vector;
public class ThreadSafeCollection {
public static void main(String[] args) {
Vector vector = new Vector<>();
vector.add("JavaFx");
vector.add("Java");
vector.add("WebGL");
vector.add("OpenCV");
System.out.println("Original: " + vector);
Collection synchronizedVector = Collections.synchronizedCollection(vector);
System.out.println("Synchronized: " + synchronizedVector);
synchronizedVector.add("CoffeeScript");
}
} आउटपुट
Original: [JavaFx, Java, WebGL, OpenCV] Synchronized: [JavaFx, Java, WebGL, OpenCV]
महत्वपूर्ण नोट
सिंक्रोनाइज़्ड रैपर का उपयोग करते समय, यौगिक संक्रियाओं (जैसे पुनरावृत्ति, सशर्त संशोधन) के दौरान मैन्युअल रूप से रिटर्न किए गए कलेक्शन पर सिंक्रोनाइज़ करना अभी भी आवश्यक है ताकि थ्रेड सुरक्षा सुनिश्चित हो सके।