JUC(3)

简介: 这篇文章讨论了Java集合类在高并发情况下的不安全性,并介绍了使用CopyOnWriteArrayList、Vector、ConcurrentHashMap等线程安全集合来解决这些问题的方法。

文章目录

  • 1、集合类不安全
  • 2、在高并发情况下arraylist()并不安全
  • 3、高并发下set并不安全
  • 3、测试map(高并发情况下出现问题)

1、集合类不安全

2、在高并发情况下arraylist()并不安全

在这里插入图片描述

在这里插入图片描述

CopyOnWriteArrayList中的add方法是使用的lock锁
在这里插入图片描述

使用vector,add方法使用的是synchronized修饰
在这里插入图片描述

在这里插入图片描述

juc的解决方法
在这里插入图片描述

3、高并发下set并不安全

在这里插入图片描述
hashSet的底层
在这里插入图片描述
在这里插入图片描述
hashMap

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3、测试map(高并发情况下出现问题)

在这里插入图片描述

在这里插入图片描述
解决
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ConcurrentHashMap的源码
在这里插入图片描述

相关文章
|
7月前
|
安全 Java 编译器
高并发编程之什么是 JUC
高并发编程之什么是 JUC
63 1
|
4月前
|
消息中间件 存储 监控
Java并发知识之ReentrantLock
本文深入剖析了Java中并发编程的核心概念,特别聚焦于锁的设计思想,通过分析AbstractQueuedSynchronizer(AQS)、ReentrantLock和ReentrantReadWriteLock的实现,揭示了锁的工作原理和高效并发控制策略。
Java并发知识之ReentrantLock
|
6月前
|
安全 算法 Java
|
7月前
|
安全 Java 程序员
Java多线程基础-17:简单介绍一下JUC中的 ReentrantLock
ReentrantLock是Java并发包中的可重入互斥锁,与`synchronized`类似但更灵活。
62 0
|
安全 Java 调度
JUC并发编程(上)
JUC并发编程(上)
75 0
|
并行计算 Java 应用服务中间件
JUC并发编程超详细详解篇(一)
JUC并发编程超详细详解篇
1673 1
JUC并发编程超详细详解篇(一)
|
存储 缓存 监控
JUC并发编程(下)
JUC并发编程(下)
42 0
|
Java 编译器 调度
JUC是什么?
JUC是什么?
|
消息中间件 资源调度 Java
【JUC基础】01. 初步认识JUC
前段时间,有朋友跟我说,能否写一些关于JUC的教程文章。本来呢,JUC也有在我的专栏计划之内,只是一直都还没空轮到他,那么既然有这样的一个契机,那就把JUC计划提前吧。那么今天就重点来初步认识一下什么是JUC,以及一些基本的JUC相关基础知识。
181 0
【JUC基础】01. 初步认识JUC
|
Java
JUC
JUC
110 0