集合类线程不安全问题

    科技2024-07-04  72

    (1)使用Vector(ArrayList所有方法加synchronized,太重)。 (2)使用Collections.synchronizedList()转换成线程安全类。

    Collection<Object> objects = Collections.synchronizedList(new ArrayList<>()); Set<String> stringSet = Collections.synchronizedSet(new HashSet<String>()); Map<Object, Object> synchronizedMap = Collections.synchronizedMap(new HashMap<>());

    (3)使用java.concurrent.CopyOnWriteArrayList(推荐)

    CopyOnWriteArrayList<String> arrayList = new CopyOnWriteArrayList<>(); //list线程安全类 CopyOnWriteArraySet<String> set = new CopyOnWriteArraySet<>(); //set线程安全类 ConcurrentHashMap<String, Object> concurrentHashMap = new ConcurrentHashMap<>(); //map的线程安全类
    Processed: 0.013, SQL: 8