19.9 常见疑难解答

19.9.1 哪些是线程安全的数据结构

答:在集合框架中,有些类是线程安全的,这些都在JDK1.1中。在JDK1.2之后,就出现了许多非线程安全的类。

下面是这些线程安全的同步的类。

❑Vector:比ArrayList多了个同步化机制(线程安全)。

❑Statck:堆栈类,先进后出。

❑Hashtable:比HashMap多了个线程安全。

❑Enumeration:枚举,相当于迭代器。

除了这些之外,其他的都是非线程安全的类和接口。线程安全类的方法是同步的,每次只能访问一个,是重量级对象,效率较低。对于非线程安全的类和接口,在多线程中需要程序员自己处理线程安全问题。只要在编译时提示:


Note:test7.java uses unchecked or unsafe operations

Note:Recompile with-Xlint:unchecked for details.


这些提示就说明使用了非线程安全的类或接口。