/**
* @author cf
* @version 1.0
*/
public class ConcurrentModificationException {
public static void main(String[] args)
{
Map<String,String> map = new ConcurrentHashMap<String,String>();//new HashMap<String,String>();
for (int i = 1; i <=25; i++)
{
new Thread(() -> {
map.put(Thread.currentThread().getName(),UUID.randomUUID().toString().substring(0, 9));
System.out.println(map);
},String.valueOf(i)).start();
}
// setNotSafe();
//listNotSafe();
}
// 不安全 CME异常 并发修改异常
private static void setNotSafe()
{
Set<String> set = new CopyOnWriteArraySet<String>();//new HashSet<String>();
for (int i = 1; i <=25; i++)
{
new Thread(() -> {
set.add(UUID.randomUUID().toString().substring(0, 9));
System.out.println(set);
},String.valueOf(i)).start();
}
}
//arraylist 不安全 CME异常 并发修改异常
private static void listNotSafe()
{
// List<String> list = new CopyOnWriteArrayList<String>();
//ConcurrentModificationException并发修改异常
List<String> list = new ArrayList<String>();
//多线程+高并发 ----> 写时复制技术
for (int i = 1; i <=35; i++)
{
new Thread(() -> {
list.add(UUID.randomUUID().toString().substring(0, 9));
System.out.println(list);
},String.valueOf(i)).start();
}
}
(CME并发修改异常)ConcurrentModificationException
最新推荐文章于 2022-07-09 06:54:36 发布