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

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

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

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

3
Sr.No方法及说明
1静态集合synchronizedCollection(Collectionc)

此方法接受任何集合对象,并返回由指定集合支持的同步(线程安全)集合。

2静态列表synchronizedList(List列表)

此方法接受 List 接口的对象,返回由指定列表支持的同步(线程安全)列表。

静态地图synchronizedMap(地图米)

此方法接受 Map 接口的对象,并返回由指定映射支持的同步(线程安全)映射。

4static SetsynchronizedSet(Set s)

此方法接受 Set 接口的对象,并且,返回由指定集合支持的同步(线程安全)集合。

5 static SortedMap synchronizedSortedMap(SortedMap m)

此方法接受 Map 接口的对象,并返回一个同步的(线程安全)由指定排序映射支持的排序映射。

6staticSortedSetsynchronizedSortedSet(SortedSets)

此方法接受一个 SynchronizedSortedSet 接口的对象,并返回一个同步(线程安全)排序集按指定的排序集。

示例

实时演示

import java.util.Collection;
import java.util.Collections;
import java.util.Vector;
public class CollectionReadOnly {
   public static void main(String[] args) {
      //Instantiating an ArrayList object
      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中使集合线程安全?的详细内容,更多请关注其它相关文章!