java 多线程 ConcurrentHashMap
时间: 2023-11-14 20:12:42 浏览: 163
Java并发系列之ConcurrentHashMap源码分析
5星 · 资源好评率100%
ConcurrentHashMap是Java中ConcurrentMap接口的实现类,它是专门为多线程环境下设计的线程安全哈希表实现。相比于Hashtable和同步的HashMap,ConcurrentHashMap在性能上有较大的优势。它具有高并发性能、分段锁机制、高效的读操作等特点,可以满足多线程环境下的并发需求。在使用ConcurrentHashMap时,需要注意它的一些特性,例如它的迭代器不是强一致的,而是弱一致的。此外,ConcurrentHashMap还提供了一些特殊的方法,例如putIfAbsent()和replace()等,可以方便地实现一些常见的并发操作。下面是一个简单的示例代码:
```
ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
map.put("key1", 1);
map.put("key2", 2);
map.put("key3", 3);
int value = map.get("key1");
System.out.println(value);
int oldValue = map.replace("key2", 4);
System.out.println(oldValue);
int result = map.putIfAbsent("key4", 4);
System.out.println(result);
```
这段代码创建了一个ConcurrentHashMap对象,并向其中添加了三个键值对。然后,它使用get()方法获取了一个键对应的值,并使用replace()方法替换了另一个键对应的值。最后,它使用putIfAbsent()方法向map中添加了一个新的键值对。需要注意的是,这些操作都是线程安全的。
阅读全文