如何在Java中使集合线程安全?
专门处理集合的 java.util 包方法的 Collections 类,这些方法提供了涉及多态算法的各种附加操作。
此类提供了 synchronizedCollection() 方法的不同变体,如下所示 -
Sr.No | 方法及说明 |
---|---|
1 | 静态 此方法接受任何集合对象,并返回由指定集合支持的同步(线程安全)集合。 |
2 | 静态 此方法接受 List 接口的对象,返回由指定列表支持的同步(线程安全)列表。 |
静态 此方法接受 Map 接口的对象,并返回由指定映射支持的同步(线程安全)映射。 | |
4 | static 此方法接受 Set 接口的对象,并且,返回由指定集合支持的同步(线程安全)集合。 |
5 | static 此方法接受 Map 接口的对象,并返回一个同步的(线程安全)由指定排序映射支持的排序映射。 |
6 | static 此方法接受一个 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中使集合线程安全?的详细内容,更多请关注其它相关文章!