不一樣。雖讓HashTable和ConcurrentHashMap的線程都是安全的,但是HashTable效率較低,因爲HashTable是使用Synchronized的,所有線程競爭同一把鎖;erconcurrentHashMap線程安全而且效率高,依靠其包含的segment數組,將數據分段儲存,給每一段數據上一把鎖。
segment數組:
static class Segment<K,V> extends ReentrantLock implements Serializable {
private static final long serialVersionUID = 2249069246763182397L;
final float loadFactor;
Segment(float lf) { this.loadFactor = lf; }
}