众所周知,在Java中,集合是最重要的概念之一,它使Java本身成为一种强大的语言。它仅支持Java中的集合,这使得它可以方便,有效地支持任何类型的数据以及可能对它们进行的CRUD操作。
但是在同一阶段,当集合暴露于多线程环境时,由于某些地方集合缺乏对多线程环境的支持,其性能会有所下降。为了克服此限制,Java引入了并发集合,它不仅克服了多线程环境的局限性,而且还增强了Java以执行多线程数据的能力。
以下是传统收藏与并行收藏之间的重要区别。
序号 | 键 | 传统收藏 | 并发集合 |
---|---|---|---|
1 | 线程安全 | Java集合中的大多数经典类(例如数组列表,链接列表,哈希映射等)都不同步,并且在多线程环境中也不是线程安全的。 | 另一方面,Java在并发集合中引入了相同的类,并在其中实现了同步,这不仅使这些类成为“已同步”,而且本质上是线程安全的。 |
2 | 锁紧机构 | 我们在传统集合中也有一些同步类,例如Vector和Stack,但是这些类在整个集合上使用了锁定,从而降低了性能和执行速度。 | 另一方面,并发收集引入了部分锁定的概念,在多线程环境中,它仅锁定部分收集,从而提高了这种环境中收集的性能和速度。 |
3 | 运行时异常 | 对于传统的集合,如果我们尝试在集合迭代期间通过单独的线程修改集合,那么我们将获得Runtime Exception ConcurrentModificationException。 | 另一方面,如果处理并发集合,即并发集合允许在其迭代期间修改集合,则不会出现这种异常。 |
4 | 偏爱 | 由于上述几点原因,传统的集合在多线程环境中不是首选。 | 另一方面,并发集合在多线程环境中是首选。 |
5 | 市场介绍 | 传统集合是Java中的传统集合类型,在并发集合之前引入。 | 在JDK 1.5中引入了并发集合,即在传统集合之后引入了并发集合。 |