Hashset dựa trên HashMap.
Nếu chúng ta nhìn vào HashSet<E>
việc thực hiện, mọi thứ đều được quản lý theo HashMap<E,Object>
.
<E>
được sử dụng như là một chìa khóa của HashMap
.
Và chúng tôi biết rằng đó HashMap
không phải là chủ đề an toàn. Đó là lý do tại sao chúng ta có ConcurrentHashMap
trong Java.
Dựa trên điều này, tôi bối rối rằng tại sao chúng ta không có một concảnHashset nên dựa trên ConcurrentHashMap
?
Có điều gì khác mà tôi đang thiếu? Tôi cần sử dụng Set
trong một môi trường đa luồng.
Ngoài ra, Nếu tôi muốn tạo của riêng tôi ConcurrentHashSet
tôi có thể đạt được điều đó bằng cách thay thế HashMap
để ConcurrentHashMap
và để lại phần còn lại như là?
ConcurrentSkipListSet
được xây dựng dựa trên ConcurrentSkipListMap
, nó thực hiện ConcurrentNavigableMap
và ConcurrentMap
.