import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public class ThreadSafeMapExample {
// 使用 Collections.synchronizedMap 包装 HashMap,使其线程安全
private static Map<String, String> synchronizedMap = Collections.synchronizedMap(new HashMap<>());
// 使用 ConcurrentHashMap 实现线程安全的 Map
private static java.util.concurrent.ConcurrentHashMap<String, String> concurrentHashMap =
new java.util.concurrent.ConcurrentHashMap<>();
public static void main(String[] args) {
// 操作同步的 HashMap
synchronizedMap.put("key1", "value1");
System.out.println("Synchronized Map: " + synchronizedMap.get("key1"));
// 操作 ConcurrentHashMap
concurrentHashMap.put("key2", "value2");
System.out.println("ConcurrentHashMap: " + concurrentHashMap.get("key2"));
}
}
Collections.synchronizedMap:
Collections.synchronizedMap 是 Java 提供的一种将现有 Map 包装成线程安全的方式。它通过在每个方法调用时加锁来保证线程安全。ConcurrentHashMap:
ConcurrentHashMap 是 Java 并发包中提供的一个线程安全的 Map 实现。synchronizedMap,ConcurrentHashMap 在高并发场景下性能更好,并且提供了更多线程安全的操作方法(如 putIfAbsent 等)。上一篇:java 线程安全的map
下一篇:java 邮件发送
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站