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.
这些提示就说明使用了非线程安全的类或接口。