1、Java.util的线程安全工具类
Vector(线程安全) ArrayList(线程不安全)
HashTable(线程安全) HashMap(线程不安全)
2、将线程不安全集合变为线程安全集合
package com.cppdy; import java.util.Collections;
import java.util.HashMap;
import java.util.Map; public class ThreadDemo16 { public static void main(String[] args) throws Exception {
Map<String, String> map=new HashMap<>();
map.put("name", "吹泡泡的魚");
//将线程不安全集合变为线程安全集合
Map<String, String> synchronizedMap = Collections.synchronizedMap(map);
} }
3、ConcurrentHashMap(分段存储,分段锁,只要多个修改操作发生在不同的段上,它们就可以并发进行,最高支持16个线程的并发修改操作)
package com.cppdy; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap; public class ThreadDemo16 { public static void main(String[] args) throws Exception {
//分段存储,分段锁,只要多个修改操作发生在不同的段上,它们就可以并发进行,最高支持16个线程的并发修改操作
ConcurrentMap<String, String> concurrentMap=new ConcurrentHashMap<String, String>();
} }