上回我们说到了在java有哪些集合是线程安全的,其实,类也可以是线程安全的,你们知道都有哪些类是线程安全的吗?快跟小编一起了解了解吧。
线程安全类有哪些?
在java中分别有着四种线程安全的类,如下:
1.vector
类似于arraylist,但比arraylist多了个同步化机制,就是线程安全,但由于效率低下,现在已经不在使用了。因为在各种web应用中,特别是前台页面,往往效率是要最优先考虑的。
2.statck
是一个堆栈类,它是线程安全的,先进后出机制。
3.hashtable
各种方法机制都类似于hashmap,但就是比hashmap多了个线程安全。
4.enumeration
枚举类,是线程安全的,类似于一个迭代器吧。
线程安全示意图:
线程安全类如何实现?
在java中,大部分类都是不安全的,除了两种:
1. 不可变类,不可变类就是指,在这个类中,一旦它的对象被创建出来,在其整个生命周期中,它的成员变量就不能被修改、
2.类中带有synchronized关键字的类,这个关键字就是为了使这个类变成线程安全的。
一般来说,能避免并发问题的两种手段就只有它们了,不变性和隔离性,synchronized就是为了实现隔离性,以使并行的访问变为线性的访问。
如果一个可变类没有一个synchronized关键字,它就肯定不是线程安全的,带有synchronized关键字的可能是线程安全的类型,Hashtable中的好多方法带有synchronized,所以它是线程安全的。
synchronize关键字就是为了让一个类成为线程安全类诞生的。
以上就是关于线程安全类的所有内容了,如果你对java有着浓厚的兴趣,还想了解更多类似这种java常见问答知识的内容的话,就请关注我们网站来了解吧。
推荐阅读: