ConcurrentHashMap是线程安全的哈希表实现类,在实现结构中它将哈希表分成许多的片段(Segment),每一个片段中除了保存有哈希数据外还提供了一个可重用的“互斥锁”,以片段的形式实现多线程操作【即在同一个片段内多个线程访问是互斥的,而不同片段的访问采用的是意不处理方式】,这样使得ConcurrentHashMap在保证性能的前提下又可以实现数据的正确修改。
1、多线程访问ConcurrentHashMap的例子:
package com.mydemo;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class JUCDemo {
public static void main(String[] args) {
// Map集合
Map<String, Integer> all = new ConcurrentHashMap<>();
// 循环定义线程
for(int i = 0; i < 3; i++){
new Thread(()->{
// 每个线程保存2个数据
for (int j = 0; j < 2; j++){
all.put("test", j);
System.out.println(all);
}
}, "集合操作线程-" + i).start();
}
}
}