一、Vjava中线程安全的集合对象
1、vector与ArrayList
Vector属于线程安全级别的,但是大多数情况下不使用Vector,因为线程安全需要更大的系统开销。ArrayList非线程安全。
2、HashTable与HashMap
Hashtable 中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的。在多线程并发的环境下,可以直接使用Hashtable,但是要使用HashMap的话就要自己增加同步处理了。
3、StringBuffer与StringBuilder
StringBuffer和StringBuilder的方法是一模一样,就前者是多线程的而后者是单线程。
4、Stack 继承自Vector 也是线程安全的。
可以由Java.util.Collections来创建线程安全的集合,如:
Connections.synchronizedSet(Set<T>);
Connections.synchronizedList(List<T>);
Connections.synchronizedMap(Map<K, V>)等,
其简单的原理是每个方法都增加了synchronized来保证线程安全。