并发容器简介

由于同步器的串行化严重降低了并发性,Java之后推出了多种并发容器,使用并发容器来替代同步容器,可以提高绳索性并降低风险

J.U.C包中提供了几个非常有用的并发容器作为线程安全的容器:

J.U.C包中提供的并发容器命名一般分为三类:

  • Concurrent:
    • 这类线程比CopyOnWrite要 高一些,但写操作代价要小一些
    • 此外,Concurrent往往提供了较低的遍历一致性,就是说容器发生改变,遍历的操作仍然不会停,在获取容器大小size的时候,容器是否为空等方法,不一定完全准确。
  • CopyOnWrite:一个线程写,多个线程读。读操作时不加锁,写操作时通过在副本上枷锁保证并发安全,空间开销大
  • Blocking:内部实现一般是基于锁,提供阻塞队列的能力

并发场景下的Map

如果对数据有一定的要求,则需使用Hashtable;

在大部分场景通常都是弱一致性 ,使用ConcurrentHashMap 即可;如果数据量 在千万级别,且存在大量增删改操作,则可以考虑使用ConcurrentSkipListMap

并发场景下的List

读多写少用CopyOnWriteArrayList

写多读少用ConcurrentLinkedQueue,需要有容量限制

相关推荐
她的男孩6 小时前
从零搭一个企业后台,为什么我把能力拆成 Starter 和 Plugin
java·后端·架构
RainCity6 小时前
Java Swing 自定义组件库分享(七)
java·笔记·后端
Sam_Deep_Thinking6 小时前
连锁门店的外卖订单平台对接
java·微服务·架构·系统架构
_遥远的救世主_6 小时前
从一次结果集密集型查询 OOM 看 Java 服务的稳定性架构治理
java·后端
一楼的猫6 小时前
从工具链视角对比:番茄作家助手 vs 第三方写作辅助方案
java·服务器·开发语言·前端·学习·chatgpt·ai写作
likerhood7 小时前
Java static 关键字从浅入深
java·开发语言
_院长大人_8 小时前
Java Excel导出:如何实现自定义表头与字段顺序的完全控制
java·开发语言·后端·excel
磊 子8 小时前
1.4CPU缓存一致性
java·spring cloud·缓存·系统
周末也要写八哥8 小时前
Eclipse 2024全流程网盘下载与安装配置教程详解
java·ide·eclipse
来恩10038 小时前
JSTL的标签库种类
java·开发语言