Computer >> Máy Tính >  >> Lập trình >> Java

Sự khác biệt giữa Bộ sưu tập truyền thống và Bộ sưu tập đồng thời trong java

Trong Java như chúng ta đã biết, Collections là một trong những khái niệm quan trọng nhất làm cho Java trở thành một ngôn ngữ mạnh mẽ. Nó chỉ hỗ trợ các bộ sưu tập trong Java giúp nó hỗ trợ bất kỳ loại dữ liệu nào một cách thuận tiện và hiệu quả cùng với các hoạt động CRUD có thể có trên chúng.

Nhưng trong cùng một giai đoạn, khi các bộ sưu tập tiếp xúc với đa luồng, hiệu suất của nó sẽ bị suy giảm phần nào do ở đâu đó các bộ sưu tập thiếu sự hỗ trợ cho môi trường đa luồng. Để khắc phục hạn chế này, Java giới thiệu Bộ sưu tập đồng thời không chỉ khắc phục giới hạn môi trường đa luồng mà còn nâng cao Java để thực hiện với dữ liệu nhiều luồng.

Sau đây là những điểm khác biệt quan trọng giữa Bộ sưu tập truyền thống và Bộ sưu tập đồng thời.

Sr.No. Phím Bộ sưu tập truyền thống Bộ sưu tập Đồng thời
1 An toàn luồng Hầu hết các lớp cổ điển trong Bộ sưu tập Java như Danh sách mảng, Danh sách được liên kết, Bản đồ băm, v.v. không được đồng bộ hóa và không an toàn cho chuỗi trong môi trường đa luồng. Mặt khác, Java giới thiệu các lớp giống nhau trong Tập hợp đồng thời với việc triển khai đồng bộ hóa trong đó không chỉ làm cho các lớp này trở thành Đồng bộ hóa mà còn về bản chất luồng an toàn.
2 Cơ chế khóa Chúng tôi có một số lớp được đồng bộ hóa trong các tập hợp truyền thống cũng như Vector và Ngăn xếp nhưng các lớp này sử dụng khóa trên toàn bộ tập hợp, điều này làm giảm hiệu suất và tốc độ thực thi. Mặt khác, bộ sưu tập đồng thời giới thiệu khái niệm khóa một phần trong đó nó chỉ khóa một phần của bộ sưu tập trong trường hợp môi trường đa luồng, điều này giúp cải thiện hiệu suất và tốc độ của bộ sưu tập trong môi trường đó.
3 Ngoại lệ Thời gian chạy Trong trường hợp các bộ sưu tập truyền thống, nếu chúng tôi cố gắng sửa đổi một bộ sưu tập thông qua chuỗi riêng biệt trong quá trình lặp lại bộ sưu tập thì chúng tôi nhận được Runtime Exception ConcurrentModificationException. Mặt khác, người ta sẽ không có ngoại lệ như vậy nếu các giao dịch với các tập hợp đồng thời, tức là các tập hợp đồng thời cho phép sửa đổi tập hợp trong quá trình lặp lại của nó.
4 Sở thích Vì lý do đã đề cập ở trên, các bộ sưu tập truyền thống không được ưu tiên trong môi trường đa luồng. Mặt khác, các tập hợp đồng thời chủ yếu được ưu tiên trong môi trường đa luồng.
5 Giới thiệu thị trường Tập hợp truyền thống là loại tập hợp kế thừa trong Java và được giới thiệu trước các tập hợp đồng thời. Trong khi các bộ sưu tập đồng thời được giới thiệu trong JDK 1.5, tức là được giới thiệu sau các bộ sưu tập truyền thống.