Java中哪些集合是线程安全的

Java中哪些集合是线程安全的

 
  1. java.util.Collection是一个集合接口,Collection接口在java中的具体实现有很多,
其中ArrayList、LinkedList、HashSet、TreeSet、HashMap、TreeMap等都是线程不安全的。Vector、HashTable是线程安全的。
  1. Collections是集合类的一个工具类,它提供了一系列静态方法,用于对集合中元素进行排序,搜索以及线程安全等各种操作
          其中将集合包装成安全集合的静态方法有:
  1. &t;T> Collection<T> synchronizedCollection(Collection<T> c): 返回指定colection 对应的线程安全的colection。
  2. static &t;T> List<T> synchronizedList(List<T> list): 返回指定List对象对应的线程安全的List 对象。
  3. static &t;K, V> Map<K, V> synchronizedMap(Map<K, V> m): 返回指定Map对象对应的线程安全的Map对象。
  4. static &t;T> Set<T> synchronizedSet(Set<T> s): 返回指定Set对象对应的线程安全的Set对象。
  5. static &t;K, V> SortedMap<K, V> synchronizedSortedMap(SortedMap<K, V> m): 返回指定SortedMap对象对应的线程安全的SortedMap对象。
  6. static &t;T> SortedSet<T> synchronizedSortedSet(SortedSet<T> s): 返回指定SortedSet对象对应的线程安全的SortedSet对象。
 
  1. 上诉提到的线程安全都属于同步类容器,其底层的机制无非是用synchronized关键字对每个公用的方法都进行同步,他们虽然实现了线程安全,但是降低了并发性,在多线程环境时,严重降低了应用程序的吞吐量。jdk5.0以后提供了多种并发容器来替代同步类容器从而改善性能,如:

 

  1. ConcurrentHashMap,ConcurrentSkipListMap,ConcurrentSkipListSet,ConcurrentLinkedQueue和ConcurrentLinkedDeque等
  1. 以CopyOnWrite开头的集合类,如CopyOnWriteArrayList,CopyOnWriteArraySet等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

记录成长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值