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.java

E:\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

回到顶部