JUC
文章平均质量分 95
Hundred billion
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
并发工具【上】——线程池及其操作
摘要: 本文介绍了线程池的基本原理与实现。线程池通过复用已有线程避免频繁创建/销毁的性能开销,体现享元模式思想。JDK的ThreadPoolExecutor采用高3位表示线程池状态(RUNNING、SHUTDOWN等),低29位记录线程数,通过原子变量ctl实现状态和线程数的同步修改。线程池构造方法包含核心参数:核心线程数、最大线程数、任务队列和拒绝策略等,工作流程遵循"核心线程→队列→救急线程→拒绝"的四步策略。Executors工厂方法提供了newFixedThreadPool等常用原创 2025-06-04 21:40:48 · 915 阅读 · 0 评论 -
乐观锁:高效并发无锁方案
本文介绍了乐观锁的概念及其实现方式。乐观锁假设冲突概率低,采用无锁设计,通过CAS(比较并交换)机制实现原子操作,适用于读多写少场景。核心内容包括:1) 乐观锁与悲观锁的对比;2) CAS原理及其在Java原子类中的应用;3) 原子整数类的使用方法。CAS通过volatile保证可见性,利用CPU指令实现原子操作,避免线程阻塞。相比悲观锁,乐观锁在低冲突场景下性能更优,但在高竞争环境下可能导致频繁重试。原创 2025-05-31 16:56:56 · 858 阅读 · 0 评论 -
深入解析JMM:Java内存模型与并发编程
主内存(Main Memory)定义:在JMM中,主内存是所有线程共享的内存区域存储内容:存储所有的共享变量(实例字段、静态字段等),约等于JVM堆中真正被多线程共享的部分 + 方法区的静态变量,或者是计算机中的内存(注意内存和外存的区别)特点:1.线程对共享变量的所有操作(读/写)都必须在主内存中进行2.是线程间通信的媒介3.对应于物理内存,但不等同于JVM堆内存工作内存(Working Memory)定义:每个线程私有的内存区域存储内容:存储该线程使用到的变量的主内存副本,约等于。原创 2025-05-22 18:02:10 · 831 阅读 · 0 评论 -
JUC编程monitor、锁膨胀以及相关关键字
如果某个方法加了锁(本质就是加载obj上),那这个对象就会和一个monitor进行关联 然后有线程执行到临界代码 如果monitor还没主人 就会成为monitor的主人) 注意, 这里的唤醒线程往往是非公平的.在jdk1.6之前,synchronized是直接依赖操作系统的Monitor,也就是管程的,因此每次加锁和释放锁都需要操作系统的帮助,性能很差,因此被称为重量级锁。为了解决这个问题,在jdk1.6之后,加入了一系列的优化,例如偏向锁和轻量级锁。原创 2025-05-20 17:30:34 · 848 阅读 · 0 评论
分享