Open chengfengjie opened 6 years ago
Hashtable
ConcurrentHasMap
相同点: Hashtable和ConcurrentHashMap都是线程安全的,可以在多线程环境中运行,并且key和value都不能为null 区别: 主要是性能上的差异,Hashtable的所有操作都会锁住整个对象,虽然能够保证线程安全,但是性能比较差;ConcurrentHashMap内部使用Segment数组,每个Segment类似Hastable,在"写"线程或者部分特殊的"读"线程中锁住的是某个Segment对象,其他的线程能够并发执行其他的Segment对象。
ConcurrentHashMap
key
value
null
Segment
Hastable
Hashtable
与ConcurrentHasMap
相同点:
Hashtable
和ConcurrentHashMap
都是线程安全的,可以在多线程环境中运行,并且key
和value
都不能为null
区别: 主要是性能上的差异,Hashtable
的所有操作都会锁住整个对象,虽然能够保证线程安全,但是性能比较差;ConcurrentHashMap
内部使用Segment
数组,每个Segment
类似Hastable
,在"写"线程或者部分特殊的"读"线程中锁住的是某个Segment
对象,其他的线程能够并发执行其他的Segment对象。