Java 线程安全的集合有哪些?
Java 线程安全的集合有哪些?
回答重点
| 类名 | 描述 | 线程安全模型 | 使用场景 |
|---|---|---|---|
Vector |
线程安全的动态数组 | 每个方法加锁 | 较低并发需求的场景(不推荐使用) |
Hashtable |
线程安全的哈希表 | 每个方法加锁 | 较低并发需求的场景(不推荐使用) |
ConcurrentHashMap |
线程安全的哈希表(高并发) | 分段锁,支持高并发 | 高并发的场景,如缓存、分布式锁等 |
CopyOnWriteArrayList |
线程安全的动态数组,适用于读多写少的场景 | 写操作时复制,读操作无锁 | 读多写少的场景,如监听器集合等 |
CopyOnWriteArraySet |
线程安全的集合,基于 CopyOnWriteArrayList 实现 |
写操作时复制,读操作无锁 | 读多写少的集合操作 |
BlockingQueue |
适用于生产者-消费者模型的线程安全队列 | 支持阻塞操作 | 生产者-消费者模型,消息队列,任务调度等场景 |
ConcurrentSkipListMap |
线程安全的有序 Map,基于跳表实现 |
跳表实现,支持高并发操作 | 需要有序访问的高并发场景 |
ConcurrentSkipListSet |
线程安全的有序 Set,基于跳表实现 |
跳表实现,支持高并发操作 | 需要有序访问的高并发场景 |
LinkedBlockingQueue |
基于链表实现的阻塞队列 | 支持阻塞操作 | 适用于队列处理任务,如任务调度、消息队列等 |
扩展知识
Comments