JAVA数据结构实现原理

HashTable
线程安全, 内部函数被synchronized修饰,对象级的锁
HashMap
非线程安全, 需要tradeoff 空间和查找时间, 空间利用率低时,冲突少,查询效率高,反之空间利用率高,冲突多,查询效率低
Collections.SynchronizedMap()
非绝对线程安全,内部函数被synchronized(mutex) 修饰,对象级的锁, 使用该map需要注意的是,多线程时,当有线程遍历map时,如果有其它线程在修改map,影响到了map的结构,比如增删元素或者map进行了rehash, 则迭代器将马上失效, 所以在迭代map时,仍然需要加对象锁. 这是非常需要注意的一点.
ConcurrentHashMap

posted @ 2018-03-27 13:31  JinleiZhang  阅读(296)  评论(0编辑  收藏  举报