Java中的HashMap和ConcurrentHashMap的区别
HashMap 和 ConcurrentHashMap 是Java中两种常用的Map实现,它们在多线程环境下的表现有很大的不同。
HashMap
HashMap
是非线程安全的,这意味着在多线程环境下使用 HashMap
可能会导致数据不一致或其他并发问题。
代码示例:
import java.util.HashMap;
import java.util.Map;
public class HashMapExample {
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
// 线程1
new Thread(() -> {
for (int i = 0; i < 1000; i++) {
map.put("key" + i, "value" + i);
}
}).start();
// 线程2
new Thread(() -> {
for (int i = 0; i < 1000; i++) {
map.put("key" + i, "value" + i);
}
}).start();
// 等待两个线程执行完毕
try {
Thread.sle