1、示例
public class ContainerNotSafeDemo {public static void main(String[] args) {Map<String, String> map = new HashMap<>();for (int i = 1; i <= 20; i++) {new Thread(() -> {map.put(Thread.currentThread().getName(), UUID.randomUUID().toString().substring(0,8));System.out.println(map);},String.valueOf(i)).start();}}}
运行会有java.util.ConcurrentModificationException,并发修改异常。
2、解决方案
- 使用Collections工具类下的Collections.synchronizedMap()
```java
Map
map = Collections.synchronizedMap(new HashMap ());
- 使用JUC包下的ConcurrentHashMap代替HashMap:
```java
Map<String, String> map = new ConcurrentHashMap<>();
