JUC
文章平均质量分 73
在 Java 中,线程部分是一个重点,本篇文章说的 JUC 也是关于线程的。JUC就是 java.util .concurrent 工具包的简称。这是一个处理线程的工具包,JDK 1.5 开始出现的。
别团等shy哥发育
硕士在读,对分布式、中间件、容器、微服务、深度学习、机器学习与数据挖掘方面感兴趣,希望可以在这些方面和大家交流学习方法。
后续文章会搬到这里:www.codeleader.top
展开
-
JUC高并发容器-CopyOnWriteArrayList
JUC高并发容器是基于非阻塞算法(或者无锁编程算法)实现的容器类,无锁编程算法主要通过组合实现,通过CAS保障操作的原子性,通过volatile保障变量内存的可见性。开销较小:不需要在内核态和用户态之间切换进程。读写不互斥:只有写操作需要使用基于CAS机制的乐观锁,读读操作之间可以不用互斥。1.ListJUC包中的高并发List主要有,对应的基础容器为ArrayList。相当于线程安全的ArrayList,它实现了List接口。在读多写少的场景中,其性能远远高于ArrayList的同步包装容器。原创 2023-10-22 10:55:39 · 339 阅读 · 0 评论 -
线程池(ThreadPool)
线程池ThreadPool1、线程池简介2、线程池参数说明(重点)2.1 常用参数说明2.2 拒绝策略(重点)3、线程池底层工作原理4、入门案例1、线程池简介 线程池(英语:thread pool):一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。 例子: 10 年前单核 CPU 电脑,假的多线程,像马戏团小丑玩多原创 2021-11-29 22:39:30 · 3069 阅读 · 0 评论 -
读写锁(ReentrantReadWriteLock)
读写锁1、读写锁介绍2、读写锁入门案例3、小结1、读写锁介绍 现实中有这样一种场景:对共享资源有读和写的操作,且写操作没有读操作那么频繁。在没有写操作的时候,多个线程同时读一个资源没有任何问题,所以应该允许多个线程同时读取共享资源;但是如果一个线程想去写这些共享资源,就不应该允许其他线程对该资源进行读和写的操作了。 针对这种场景,JAVA 的并发包提供了读写锁 ReentrantReadWriteLock,它表示两个锁,一个是读操作相关的锁,称为共享锁;一个是写相关的锁,称为排他锁。线程进入读锁原创 2021-11-29 20:30:11 · 1364 阅读 · 0 评论 -
死锁案例演示
文章目录1、什么是死锁2、产生死锁的原因3、死锁演示4、验证是否是死锁1、什么是死锁两个或两个以上进程在执行过程中,因为争夺资源而造成一种互相等待的现象,如果没有外力干涉,它们无法再执行下去。2、产生死锁的原因系统资源不足进程运行推进顺序不合适资源分配不当3、死锁演示import java.util.concurrent.TimeUnit;/** * 演示死锁 */public class DeadLock { //创建两个对象 static Object原创 2021-10-24 17:53:45 · 1515 阅读 · 0 评论 -
线程间定制化通信--交替打印
线程间定制化通信1、案例介绍2、实现流程3、代码实现1、案例介绍 启动三个线程AA、BB、CC,线程AA打印5次,线程BB打印30次,线程CC打印15次,按照顺序循环10轮2、实现流程设置三个标志位, flag=1的时候,AA线程打印5次,同时修改标志位flag=2,通知BB线程flag=2的时候,BB线程打印10次,同时修改标志位flag=3,通知CC线程flag=3的时候,CC线程打印15次,同时修改标志位flag=1,通知AA线程3、代码实现import java.util.原创 2021-10-24 15:35:09 · 162 阅读 · 0 评论 -
集合的线程安全问题(ArrayList、HashSet、HashMap)
集合的线程安全1 ArrayList线程不安全1.1 ArrayList线程不安全演示1.2 解决ArrayList线程不安全1.2.1 解决方案-Vector1.2.2 解决方案-Collections1.2.3 解决方案:CopyOnWriteArrayList(写时复制技术 推荐)2 HashSet线程不安全2.1 HashSet线程不安全演示2.2 解决方案:CopyOnWriteArraySet3、HashMap线程不安全3.1 HashMap线程不安全演示3.2 解决方案:ConcurrentH原创 2021-10-24 16:24:22 · 670 阅读 · 0 评论