java 线程安全map
时间: 2023-11-17 15:55:53 浏览: 38
Java中有几种线程安全的Map实现,其中最常用的是ConcurrentHashMap。
ConcurrentHashMap是Java集合框架中的一个线程安全的哈希表实现,它能够高效地支持并发访问。以下是一些使用ConcurrentHashMap的示例代码:
```java
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class ThreadSafeMapExample {
public static void main(String[] args) {
// 创建一个线程安全的Map
Map<String, Integer> map = new ConcurrentHashMap<>();
// 在多个线程中同时操作Map
Runnable runnable = () -> {
for (int i = 0; i < 1000; i++) {
map.put("key" + i, i);
}
};
// 创建多个线程并启动
Thread thread1 = new Thread(runnable);
Thread thread2 = new Thread(runnable);
thread1.start();
thread2.start();
// 等待线程执行完毕
try {
thread1.join();
thread2.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
// 输出Map的大小
System.out.println("Map size: " + map.size());
}
}
```
在上述代码中,我们创建了一个ConcurrentHashMap实例,并在两个线程中同时向Map中添加元素,最后输出Map的大小。由于ConcurrentHashMap是线程安全的,它能够正确地处理并发访问,不会导致数据不一致或线程冲突的问题。