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]