Concurrent Hashmap là một lớp đã được giới thiệu trong jdk1.5. Bản đồ băm đồng thời chỉ áp dụng khóa ở cấp nhóm được gọi là phân mảnh trong khi thêm hoặc cập nhật bản đồ. Vì vậy, một bản đồ băm đồng thời cho phép thao tác đọc và ghi đồng thời vào bản đồ.
Bản đồ băm đồng bộ hóa (Collection.syncronizedHashMap ()) là một phương thức của khuôn khổ Bộ sưu tập. Phương pháp này áp dụng một khóa trên toàn bộ bộ sưu tập. Vì vậy, nếu một luồng đang truy cập vào bản đồ thì không luồng nào khác có thể truy cập vào cùng một bản đồ.
Sr. Không. | Phím | Bản đồ băm đồng thời | Bản đồ băm được đồng bộ hóa |
---|---|---|---|
1 | Triển khai | Đây là một lớp thực hiện một bản đồ băm đồng thời và giao diện có thể tuần tự hóa. | Nó là một phương thức trong lớp Collection. |
2 | Cơ chế khóa | Khóa phần | Khóa toàn bộ bản đồ. |
3 | Hiệu suất | Bản đồ băm đồng thời cho phép đọc và ghi đồng thời. Vì vậy, hiệu suất tương đối tốt hơn so với một bản đồ đồng bộ. | Nhiều luồng không thể truy cập bản đồ đồng thời. Vì vậy, hiệu suất tương đối kém hơn một bản đồ băm đồng thời. |
4 | Phím rỗng | Nó không cho phép null làm khóa hoặc giá trị. | Nó cho phép null làm khóa. |
5 | Ngoại lệ sửa đổi đồng thời | Nó không đưa ra ngoại lệ sửa đổi đồng thời. | Trả về trình lặp lại bằng cách đồng bộ hóa bản đồ ném ngoại lệ sửa đổi đồng thời |
Ví dụ về Bản đồ đồng bộ hóa
public class SynchronizedMapExample { public static void main(String[] args) { Map<Integer,String> laptopmap = new HashMap<Integer,String>(); laptopmap.put(1,"IBM"); laptopmap.put(2,"Dell"); laptopmap.put(3,"HCL"); // create a synchronized map Map<Integer,String> syncmap = Collections.synchronizedMap(laptopmap); System.out.println("Synchronized map is : "+syncmap); } }
Ví dụ về ConcurrentHashMap
public class ConcurrentHashMapExample { public static void main(String[] args) { //ConcurrentHashMap Map<Integer,String> laptopmap = new ConcurrentHashMap<Integer,String>(); laptopmap.put(1,"IBM"); laptopmap.put(2,"Dell"); laptopmap.put(3,"HCL"); System.out.println("ConcurrentHashMap is: "+laptopmap); } }