Java 中同步集合与并发集合的区别
Java中的同步集合与并发集合
在这里,我们将看到同步集合与Java中的并发集合有何不同?
同步集合
现在,我们将看到同步的内容是什么?在这里,同步意味着一次只允许一个线程在一个对象上操作,换句话说,该对象(已同步)不能同时被多个线程修改。
同步集合可以一次由一个线程修改(即,不可能同时由多个线程修改或访问同步集合)。
同步集合的性能比并发收集低,因为一次只允许一个线程对一个对象进行操作,因此它增加了线程的等待时间。
同步集合获取整个提供了线程安全性的Collection对象上的锁。
SynchronizedMap是Collections类的静态内部类,可在java.util.Collections中使用。
在SynchronizedMap中,它获取对整个Map对象的锁定,并使用synced关键字包装Map接口的所有方法。
SynchronizedMap可能允许空键和空值取决于实际的Collections类。
示例
import java.util.*;class SynchronizedCollectionClass {
public static void main(String[] args) {
try {
Set set = new HashSet();
set.add(10);
set.add(20);
set.add(30);
set.add(40);
set.add(50);
System.out.println("Current Set is :" + set);
Collection collection = Collections.synchronizedCollection(set);
System.out.println("Synchronized Collection is :" + set);
} catch (IndexOutOfBoundsException ex) {
System.out.println("Exception :" + ex.getMessage());
}
}
}
输出结果
E:\Programs>javac SynchronizedCollectionClass.javaE:\Programs>java SynchronizedCollectionClass
Current Set is :[50, 20, 40, 10, 30]
Synchronized Collection is :[50, 20, 40, 10, 30]
在这里,我们将看到并发集合与Java中的同步集合有何不同?
以上是 Java 中同步集合与并发集合的区别 的全部内容, 来源链接: utcz.com/z/334673.html