list
HashSet
HashMap
public static void main(String[] args) {
// List<String>list=new ArrayList<>();
//解决方案1
// List<String>list=new Vector<>();//jdk1.0线程同步 底层synchronized
//解决方案2
// List<String> list = Collections.synchronizedList(new ArrayList<String>());
//解决方案3
/**
* 原理:写时复制技术
* 每次写的时候,复制一份内容,写完之后合并或者覆盖,然后读取新的内容
*/
// List<String> list=new CopyOnWriteArrayList<>();//juc
//
// for(int i=0;i<30;i++) {
// new Thread(()->{
//
// list.add(UUID.randomUUID().toString().substring(0, 8));
//
// System.out.println(list);//java.util.ConcurrentModificationException
//
// },i+"").start();
// }
// Set<String> set=new HashSet<String>();
// Set<String> set=new CopyOnWriteArraySet<String>();
// for(int i=0;i<30;i++) {
// new Thread(()->{
//
// set.add(UUID.randomUUID().toString().substring(0, 8));
//
// System.out.println(set);//java.util.ConcurrentModificationException
//
// },i+"").start();
// }
// Map<String,Object> map=new HashMap<String,Object>();
Map<String,Object> map=new ConcurrentHashMap<String,Object>();
for(int i=0;i<30;i++) {
String key=i+"";
new Thread(()->{
map.put(key,UUID.randomUUID().toString().substring(0, 8));
System.out.println(map);//java.util.ConcurrentModificationException
},i+"").start();
}
}