并发容器简介

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

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

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

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

并发场景下的Map

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

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

并发场景下的List

读多写少用CopyOnWriteArrayList

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

相关推荐
二哈喇子!15 小时前
Java开发工具——IDEA(修改全局配置,提升工作效率)
java·编辑器·intellij-idea
强子感冒了15 小时前
Java网络编程学习笔记,从网络编程三要素到TCP/UDP协议
java·网络·学习
二哈喇子!15 小时前
SpringBoot项目右上角选择ProjectNameApplication的配置
java·spring boot
yanyu-yaya15 小时前
前端面试题
前端·面试·前端框架
sin220115 小时前
MyBatis的执行流程
java·开发语言·mybatis
二哈喇子!16 小时前
基于Spring Boot框架的车库停车管理系统的设计与实现
java·spring boot·后端·计算机毕业设计
二哈喇子!16 小时前
基于Spring Boot框架的网络游戏虚拟交易平台的设计与实现
java·springboot·毕设项目
二哈喇子!16 小时前
JAVA环境变量配置步骤及测试(JDK的下载 & 安装 & 环境配置教程)
java·开发语言
二哈喇子!16 小时前
Java框架精品项目【用于个人学习】
java·spring boot·学习
二哈喇子!16 小时前
基于SpringBoot框架的网上购书系统的设计与实现
java·大数据·spring boot