📅  最后修改于: 2023-12-03 14:42:13.619000             🧑  作者: Mango
Java ConcurrentMap接口是Java集合框架中的一种并发容器,用于提供多线程下的安全操作。
ConcurrentMap接口继承自Map接口,提供了线程安全的键值对存储。
和Map接口的区别在于ConcurrentMap在进行put、remove等操作时,可以先进行检查,不会对整个容器进行加锁,从而提高了多线程操作的效率。
Java 1.5引入ConcurrentMap接口,主要是用于替代并发访问HashTable的实现,因为HashTable的实现是通过对整个容器进行同步控制,导致并发性能极低。
Java提供了多种ConcurrentMap的实现类:
ConcurrentMap<String, String> map = new ConcurrentHashMap<>();
// 添加元素
map.put("key1", "value1");
map.put("key2", "value2");
// 获取元素
String value1 = map.get("key1");
String value2 = map.getOrDefault("key2", "default");
// 循环遍历
map.forEach((key, value) -> System.out.println(key + ": " + value));
// 原子性操作
map.compute("key1", (key, value) -> value + "updated");
// 删除元素
map.remove("key1");
map.remove("key2", "value2");
上述示例演示了ConcurrentMap的基本操作,其中compute
方法可以进行原子性操作。
更多ConcurrentMap的详细操作可以参考Java官方文档或查看源码。