当前位置:   article > 正文

java 线程安全的类型_线程安全的类在java中有几种?如何成为线程安全类?

线程安全的类

上回我们说到了在java有哪些集合是线程安全的,其实,类也可以是线程安全的,你们知道都有哪些类是线程安全的吗?快跟小编一起了解了解吧。

线程安全类有哪些?

在java中分别有着四种线程安全的类,如下:

1.vector

类似于arraylist,但比arraylist多了个同步化机制,就是线程安全,但由于效率低下,现在已经不在使用了。因为在各种web应用中,特别是前台页面,往往效率是要最优先考虑的。

2.statck

是一个堆栈类,它是线程安全的,先进后出机制。

3.hashtable

各种方法机制都类似于hashmap,但就是比hashmap多了个线程安全。

4.enumeration

枚举类,是线程安全的,类似于一个迭代器吧。

线程安全示意图:

bb547ca21902a5c025d0034496f888ea.png

线程安全类如何实现?

在java中,大部分类都是不安全的,除了两种:

1. 不可变类,不可变类就是指,在这个类中,一旦它的对象被创建出来,在其整个生命周期中,它的成员变量就不能被修改、

2.类中带有synchronized关键字的类,这个关键字就是为了使这个类变成线程安全的。

一般来说,能避免并发问题的两种手段就只有它们了,不变性和隔离性,synchronized就是为了实现隔离性,以使并行的访问变为线性的访问。

如果一个可变类没有一个synchronized关键字,它就肯定不是线程安全的,带有synchronized关键字的可能是线程安全的类型,Hashtable中的好多方法带有synchronized,所以它是线程安全的。

synchronize关键字就是为了让一个类成为线程安全类诞生的。

以上就是关于线程安全类的所有内容了,如果你对java有着浓厚的兴趣,还想了解更多类似这种java常见问答知识的内容的话,就请关注我们网站来了解吧。

推荐阅读:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/900247
推荐阅读
相关标签
  

闽ICP备14008679号