Collections.synchronizedMap()方法来获取一个线程安全的集合(Collections.synchronizedMap()实现原理是Collections定义了一个SynchronizedMap的内部类,这个类实现了Map接口,在调用方法时使用synchronized来保证线程同步,当然了实际上操作的还是我们传入的HashMap实例,简单的说就是Collections.synchronizedMap()方法帮我们在操作HashMap时自动添加了synchronized来实现线程同步,类似的其它Collections.synchronizedXX方法也是类似原理)\’

java.util.Collections.synchronizedSet()方法

synchronizedSet() 方法用于返回一个同步的(线程安全的)有序set由指定的有序set支持。

声明

以下是java.util.Collections.synchronizedSet()方法的声明。

public static <T> Set<T> synchronizedSet(Set<T> s)

参数

  • s–这是一组可以在同步组“包装”。

返回值

  • 在方法调用返回指定set的同步视图。

异常

  • NA

例子

下面的例子显示java.util.Collections.synchronizedSet()方法的使用

package com.yiibai;

import java.util.*;

public class CollectionsDemo {
   public static void main(String[] args) {
      // create set
      Set<String> set = new HashSet<String>();
      
      // populate the set
      set.add("TP");
      set.add("IS");
      set.add("FOR");
      set.add("TECHIES");
      
      
      // create a synchronized set
      Set<String> synset = Collections.synchronizedSet(set);
     
      System.out.println("Synchronized set is :"+synset);
   }
}

现在编译和运行上面的代码示例,将产生以下结果。

Synchronized set is :[FOR, IS, TECHIES, TP]

Collections.synchronizedMap()collections.synchronizedlistcollections.synchronizedcollection

 

版权声明:本文为duanxz原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/duanxz/archive/2012/10/25/2739998.html