Java中传统集合与并发集合的区别


众所周知,在Java中,集合是一个非常重要的概念,它本身就使Java成为一种强大的语言。正是Java对集合的支持,才使得它能够方便高效地支持任何类型的数据,并能够对其进行CRUD操作。

但与此同时,当集合暴露于多线程环境时,由于集合在某种程度上缺乏对多线程环境的支持,其性能会有一定程度的下降。为了克服这个限制,Java引入了并发集合,它不仅克服了多线程环境的限制,而且增强了Java在多线程数据处理方面的性能。

以下是传统集合和并发集合之间的一些重要区别。

序号关键点传统集合并发集合
1线程安全Java集合中大多数经典类,例如ArrayList、LinkedList、HashMap等,都不是同步的,在多线程环境中也不是线程安全的。另一方面,Java在并发集合中引入了相同的类,并在其中实现了同步,这不仅使这些类成为同步的,而且使其本质上也是线程安全的。
2锁机制传统集合中也有一些同步类,例如Vector和Stack,但这些类对整个集合使用锁,这会降低执行的性能和速度。另一方面,并发集合引入了部分锁的概念,在多线程环境中,它只锁定集合的一部分,从而提高了此类环境下集合的性能和速度。
3运行时异常对于传统集合,如果我们在集合迭代期间尝试通过单独的线程修改集合,则会得到运行时异常ConcurrentModificationException。另一方面,如果使用并发集合,则不会出现这种异常,即并发集合允许在迭代期间修改集合。
4偏好由于上述原因,传统集合在多线程环境中并不推荐使用。另一方面,并发集合主要在多线程环境中推荐使用。
5市场引入时间传统集合是Java中的遗留集合类型,其引入时间早于并发集合。而并发集合是在JDK 1.5中引入的,即在传统集合之后引入的。

更新于:2020年2月24日

875 次浏览

启动您的职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.