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常见问答知识的内容的话,就请关注我们网站来了解吧。

推荐阅读:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值