she*_*aei 61 java hashtable hashmap
Java中的ConcurrentHashMap和Hashtable有什么区别?
哪个对线程应用程序更有效?
Pre*_*raj 115
ConcurrentHashMap和Hashtable锁定机制
Hashtable属于Collection框架; ConcurrentHashMap属于Executor框架.Hashtable对整个数据使用单锁.在段级别上ConcurrentHashMap使用多个锁(默认为16)而不是对象级别,即整体Map.ConcurrentHashMap锁定仅适用于更新.在检索的情况下,它允许完全并发,检索反映了最近完成的更新操作的结果.因此,使用锁完成写入时,读取可能会非常快.ConcurrentHashMap不会抛出ConcurrentModificationException,如果一个线程试图另一种就是遍历它来修改它并不允许空值.ConcurrentHashMap返回Iterator,在并发修改时失败安全(即迭代器将生成内部数据结构的副本).ConcurrentHashMap使用数据库分片logic(Segment<K, V>[] segments)被称为并发级,即将数据分成碎片(段)而不是每个碎片(段)上的放置锁,而不是为整个数据(Map)放置一个锁.默认值为16.要从技术上更加了解ConcurrentHashMap,请查看此链接
以下类比可以帮助您理解概念(不是逻辑)
Hashtable并且ConcurrentHashMap是两种类型的房屋.Hashtable 锁住家的大门.ConcurrentHashMap 锁定特定的房间门而不是主门.哪个对线程应用程序更有效?
ConcurrentHashMap 对于线程应用程序更有效.
Luc*_*olt 96
ConcurrentHashMap使用多个存储桶来存储数据.这避免了读锁定,并大大提高了性能HashTable.两者都是线程安全的,但有明显的性能胜利ConcurrentHashMap.
当您从ConcurrentHashMap使用中读取时get(),没有锁定,与HashTable所有操作简单同步的情况相反.
HashTable在旧版本的Java中发布,而ConcurrentHashMapjava 5+ 则是一个东西.
HashMap 是在单线程应用程序中使用的最佳选择.
| 归档时间: |
|
| 查看次数: |
70045 次 |
| 最近记录: |