import java.util.*;
/** * @description: HashMap线程不安全的代码示例 * @author: xz */
public class ContainerNotSafe {
public static void main(String[] args) {
Map<String,String> map=new HashMap<>();
//模拟30个线程,往HashMap集合中添加数据
for(int i=1;i<=30;i++){
new Thread(()->{
map.put(Thread.currentThread().getName(),UUID.randomUUID().toString().substring(0,8));
System.out.println(map);
}).start();
}
}
}
import java.util.*;
/** * @description: 通过Collections工具类解决集合类HashMap线程不安全问题 * @author: xz */
public class ContainerNotSafe {
public static void main(String[] args) {
Map<String,String> map=Collections.synchronizedMap(new HashMap<>());
//模拟30个线程,往synchronizedMap集合中添加数据
for(int i=1;i<=30;i++){
new Thread(()->{
map.put(Thread.currentThread().getName(),UUID.randomUUID().toString().substring(0,8));
System.out.println(map);
}).start();
}
}
}
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
/** * @description: 通过JUC包下的并发集合类解决HashMap线程不安全问题 * @author: xz */
public class ContainerNotSafe {
public static void main(String[] args) {
Map<String,String> map=new ConcurrentHashMap<>();
//模拟30个线程,往synchronizedMap集合中添加数据
for(int i=1;i<=30;i++){
new Thread(()->{
map.put(Thread.currentThread().getName(),UUID.randomUUID().toString().substring(0,8));
System.out.println(map);
}).start();
}
}
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://wwwxz.blog.csdn.net/article/details/122443533
内容来源于网络,如有侵权,请联系作者删除!