如何在Java中使收集线程安全?

专用于集合的java.util包方法的Collections类,这些方法提供了涉及多态算法的各种附加操作。

此类提供了该synchronizedCollection()方法的不同变体,如下所示-

序号方法与说明
1静态<T>集合<T> syncedCollection(Collection <T> c)
此方法接受任何集合对象,并返回由指定集合支持的同步(线程安全)集合。
2静态<T>列表<T>同步列表(列表<T>列表)
此方法接受列表接口的对象,返回由指定列表支持的同步(线程安全)列表。
3静态<K,V> Map <K,V> syncedMap(Map <K,V> m)
此方法接受Map接口的对象,并返回由指定映射支持的同步(线程安全)映射。
4静态<T> Set <T> syncedSet(Set <T> s)
此方法接受Set接口的对象,并返回由指定set支持的同步(线程安全)set。
5静态<K,V> SortedMap <K,V> syncedSortedMap(SortedMap <K,V> m)
此方法接受Map接口的对象,并返回由指定的排序图支持的同步(线程安全)排序图。
6静态<T> SortedSet <T> SynchronizedSortedSet(SortedSet <T> s)
此方法接受serializedSortedSet接口的对象,并返回由指定排序集支持的同步(线程安全)排序集。

示例

import java.util.Collection;

import java.util.Collections;

import java.util.Vector;

public class CollectionReadOnly {

   public static void main(String[] args) {

      //实例化ArrayList对象

      Vector<String> vector = new Vector<String>();

      vector.add("JavaFx");

      vector.add("Java");

      vector.add("WebGL");

      vector.add("OpenCV");

      System.out.println(vector);

      Collection<String> synchronizedVector = Collections.synchronizedCollection(vector);

      System.out.println("Synchronized "+synchronizedVector);

      synchronizedVector.add("CoffeeScript");

   }

}

输出结果

[JavaFx, Java, WebGL, OpenCV]

Synchronized [JavaFx, Java, WebGL, OpenCV]

以上是 如何在Java中使收集线程安全? 的全部内容, 来源链接: utcz.com/z/340797.html

回到顶部