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

javaobject oriented programmingprogramming

众所周知,Java 中集合是最重要的概念之一,这使得 Java 本身成为一种强大的语言。Java 中只有对集合的支持才能以方便高效的方式支持任何类型的数据以及可能的 CRUD 操作。

但在同一阶段,当集合暴露于多线程时,其性能会有所下降,因为某些集合缺乏对多线程环境的支持。为了克服这一限制,Java 引入了并发集合,它不仅克服了多线程环境的限制,还增强了 Java 在多线程数据上的执行能力。

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

Sr.No.Key传统集合并发集合
1线程安全Java 集合中的大多数经典类,例如数组列表、链接列表、哈希图等未同步,在多线程环境中不是线程安全的。另一方面,Java 在并发集合中引入了相同的类,并在其中实现了同步,这不仅使这些类成为同步的,而且本质上也是线程安全的。
2锁定机制在传统集合中我们也有一些同步类,例如 Vector 和 Stack,但是这些类使用对整个集合的锁定,这会降低性能和执行速度。另一方面,并​​发集合引入了部分锁定的概念,在多线程环境下它只锁定集合的一部分,从而提高了这种环境中集合的性能和速度。
3运行时异常对于传统集合,如果我们尝试在集合迭代期间通过单独的线程修改集合,则会引发运行时异常 ConcurrentModificationException。另一方面,如果处理并发集合,则不会收到此类异常,即并发集合允许在迭代期间对集合进行修改。
4偏好由于上述几点原因,传统集合在多线程环境中并不受欢迎。另一方面,并​​发集合在多线程环境中更受青睐。
5市场引入传统集合是 Java 中的一种遗留集合,在并发集合之前引入。而并发集合是在 JDK 1.5 中引入的,即在传统集合之后引入。

相关文章