线程安全的集合操作类
Posted Geek
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程安全的集合操作类相关的知识,希望对你有一定的参考价值。
常见的操作接口有:Map,List,Set,Vector 其最常用的实现类有:HashMap,ArrayList,LinkedList,HashSet
但是只有Vector是线程安全的,Collections实现了一个些方法可以保证常用的集合类达到线程安全:
Map: Map<Object,Object> map = Collections.synchronizedMap(new HashMap<>());
Set: Set<Object> set1 = Collections.synchronizedSet(new HashSet<>());
List: List<String> list = Collections.synchronizedList(new LinkedList<>());
List<String> list = Collections.synchronizedList(new ArrayList<>());
注意 使用时必须在同步块中使用如:
Set s = Collections.synchronizedSet(new HashSet()); ... synchronized(s) { Iterator i = s.iterator(); // Must be in the synchronized block while (i.hasNext()) foo(i.next()); }
不然会导致无法确定的行为。
以上是关于线程安全的集合操作类的主要内容,如果未能解决你的问题,请参考以下文章