![](https://img-blog.csdnimg.cn/20190918140012416.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java并发
文章平均质量分 87
多线程、锁、JUC、JMM、高并发设计模式
CodePanda@GPF
分享Java、算法等知识,欢迎热爱编程的朋友一起交流!
展开
-
StampedLock(印戳锁)详解
StampedLock、印戳锁原创 2022-04-10 16:20:08 · 2851 阅读 · 0 评论 -
读写锁ReentrantReadWriteLock详解
读写锁、ReentrantReadWriteLock原创 2022-04-10 15:36:46 · 3365 阅读 · 0 评论 -
可重入独占锁ReentrantLock
ReentrantLock锁原理、可重入锁、独占锁原创 2022-04-02 20:36:52 · 1147 阅读 · 0 评论 -
LockSupport工具类的使用
LockSupport、park、unpark原创 2022-04-01 20:14:29 · 1079 阅读 · 0 评论 -
JUC显式锁概述
悲观锁、乐观锁、共享锁、独占锁、公平锁、非公平锁、可重入锁、不可重入锁原创 2022-03-28 16:16:09 · 240 阅读 · 0 评论 -
原子操作类LongAdder原理及实现
文章目录1. 简介2. 代码分析1. 简介背景:AtomicLong 通过 CAS 提供了非阻塞的原子性操作,在高并发 下大量线程会同时去竞争更新 同 →个原子变量,但是由于同时只有一个线程的CAS 操作会成功,这就造成了大量线程竞争失败后,会通过无限循环不断进行自旋尝试CAS 的操作,而这会白白浪费 CPU 资源。LongAdder的思路:把一个变量分解为多个变量 ,让同样多的线程去竞争多个资源LongAdder维护了多个cell变量,每个 Cell 里面有 一个初始值为 0 的 lon原创 2022-03-26 20:30:45 · 630 阅读 · 0 评论 -
Unsafe类详解
Unsafe类、CAS原创 2022-03-20 22:10:31 · 1887 阅读 · 0 评论 -
Random和ThreadLocalRandom的原理分析
Random类、ThreadLocalRandom()类原创 2022-03-19 17:47:24 · 342 阅读 · 0 评论 -
synchronized和volatile关键字解决内存可见性问题的比较
内存可见性问题、synchronized、volatile原创 2022-03-18 15:05:17 · 558 阅读 · 0 评论 -
Java并发编程--重排序
Java指令重排序原创 2022-03-16 17:46:01 · 845 阅读 · 0 评论 -
重量级锁的原理与实战
重量级锁原创 2022-03-15 16:25:36 · 1029 阅读 · 0 评论 -
轻量级锁的原理与实战
轻量级锁、自旋、膨胀原创 2022-03-14 19:47:52 · 1764 阅读 · 4 评论 -
偏向锁的原理与实战
偏向锁、批量重偏向、批量撤销原创 2022-03-13 22:31:34 · 1826 阅读 · 4 评论 -
Java对象结构与内置锁
文章目录1. Java对象结构2. Mark Word的结构信息3. 大小端问题4. 四种内置锁的概念1. Java对象结构先上图:对象头Mark Word: 标记字,存储自身运行时的数据,例如GC标志位、哈希码、锁状态等信息Class Pointer: 类对象指针,存放方法区Class对象的地址,虚拟机通过这个指针来确定这个对象是哪个类的实例Array Length: 数组长度,如果对象是一个Java数组,那么此字段必须有,用于记录数组长度的数据,不是数组对象可以没有,可选字段对原创 2022-03-13 12:40:31 · 299 阅读 · 0 评论 -
Java线程安全问题
文章目录1. 自增运算不是安全的2. 临界资源与临界区代码3. synchronized同步方法4. synchronized同步块1. 自增运算不是安全的package threadpool;public class PlusTest { private static int count=0; static void increse() { count++; } public static void main(String[] args) t原创 2022-03-11 17:43:03 · 422 阅读 · 1 评论 -
ThreadLocal原理与实战
文章目录1. 基本使用2. ThreadLocal的使用场景3. ThreadLocal内部结构演进4. ThreadLocal源码分析5. ThreadLocalMap源码分析1. 基本使用ThreadLocal的英文字面意思为“本地线程”,实际上ThreadLocal代表的是线程的本地变量。如果程序创建了一个ThreadLocal实例,那么在访问这个变量的值时,每个线程都会拥有一个独立的、自己的本地值。“线程本地变量”可以看成专属于线程的变量,不受其他线程干扰,保存着线程的专属数据。当线程结束后,原创 2022-03-11 09:09:18 · 222 阅读 · 0 评论 -
Java线程池(超详细)
文章目录1.线程池概念2. JUC线程池架构3. Executors创建线程的4种方法4. 线程池的标准创建方式5. 向线程池提交任务的两种方式6. 线程池的任务调度流程7. ThreadFactory(线程工厂)8. 任务阻塞队列1.线程池概念创建Java线程需要给线程分配堆栈内存以及初始化内存,还需要进行系统调用,频繁地创建和销毁线程会大大降低系统的运行效率,采用线程池来管理线程有以下好处:提升性能:线程池能独立负责线程的创建、维护和分配线程管理:每个Java线程池会保持一些基本的线程统计信息原创 2022-03-10 10:39:28 · 48957 阅读 · 22 评论 -
懒汉式单例模式由浅到深
1.最基础版,不考虑线程安全问题package JavaBasis.chapter8;public class Singleton { private static Singleton instance=null; private Singleton(){}//私有化构造函数,外部不可见 private static Singleton getInstance() { if(instance==null)//实例未被创建 in原创 2021-03-18 10:51:02 · 102 阅读 · 0 评论