Java集合中那些类是线程安全的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java集合中那些类是线程安全的相关的知识,希望对你有一定的参考价值。

线程安全类

在集合框架中,有些类是线程安全的,这些都是jdk1.1中的出现的。在jdk1.2之后,就出现许许多多非线程安全的类。 下面是这些线程安全的同步的类:

vector:就比arraylist多了个同步化机制(线程安全),因为效率较低,现在已经不太建议使用。在web应用中,特别是前台页面,往往效率(页面响应速度)是优先考虑的。

statck:堆栈类,先进后出

hashtable:就比hashmap多了个线程安全

enumeration:枚举,相当于迭代器

除了这些之外,其他的都是非线程安全的类和接口。

线程安全的类其方法是同步的,每次只能一个访问。是重量级对象,效率较低。

其他:

1. hashtable跟hashmap的区别

hashtable是线程安全的,即hashtable的方法都提供了同步机制;hashmap不是线程安全的,即不提供同步机制 ;hashtable不允许插入空值,hashmap允许!

2. 多线程并发修改一 个 集合 怎么办

用老的Vector/Hashtable类

 

StringBuffer是线程安全,而StringBuilder是线程不安全的。对于安全与不安全没有深入的理解情况下,易造成这样的错觉,如果对于StringBuffer的操作均是线程安全的。

以上是关于Java集合中那些类是线程安全的的主要内容,如果未能解决你的问题,请参考以下文章

Java集合面试题总结

如何保证集合是线程安全的?

如何创建线程?如何保证线程安全?

如何创建线程?如何保证线程安全?

java多线程之队列

验证HashSet和HashMap不是线程安全