java hashtable 并发,Java中HashTable和ConcurrentHashMap之间的区别

并发Hashmap是在jdk1.5中引入的类。并发哈希映射仅在添加或更新映射时在称为片段的存储桶级别应用锁。因此,并发哈希映射允许对映射进行并发读写操作。

HashTable是在Jdk1.1中引入的线程安全的旧类。它是Map接口的基本实现。它不允许使用null键和值。它本质上是同步的,因此两个不同的线程无法同时访问。Hashtable不维护任何顺序。序号键哈希表并发哈希映射1个基本的并发Hashmap是在jdk1.5中引入的类HashTable是Jdk1.1中引入的线程安全的旧类。

2锁定它将锁定应用于整个集合并发哈希映射仅在添加或更新映射时在称为片段的存储桶级别应用锁

3性能它比并发HashMap慢比哈希表好

4。空值不允许使用null键和值它允许空键和值

哈希表示例import java.util.ArrayList;

import java.util.EnumMap;

import java.util.HashMap;

import java.util.Hashtable;

import java.util.List;

import java.util.Map;

public class HashtableExample {

public static void main(String[] args) {

// create Hashtable

Hashtable map = new Hashtable();

map.put("HCL", "100");

map.put("DELL", "200");

map.put("IBM", "300");

// print the map

for (Map.Entry m : map.entrySet()) {

System.out.println(m.getKey() + " " + m.getValue());

}

}

}

ConcurrentHashMap的示例import java.util.ArrayList;

import java.util.EnumMap;

import java.util.HashMap;

import java.util.Hashtable;

import java.util.List;

import java.util.Map;

import java.util.concurrent.ConcurrentHashMap;

public class ConcurrentHashMapExample {

public static void main(String[] args) {

// ConcurrentHashMap

Map myMap = new ConcurrentHashMap();

myMap.put("HCL", "1");

myMap.put("DELL", "1");

// print the map

for (Map.Entry m : map.entrySet()) {

System.out.println(m.getKey() + " " + m.getValue());

}

}

}

你可能感兴趣的:(java,hashtable,并发)