![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JUC
文章平均质量分 96
青衫白衣98
当你的才华还撑不起你的野心的时候,你就应该静下心来学习。当你的能力还驾驭不了你的目标的时候,你就应该沉下心来历练。
展开
-
Java并发编程(三)——ThreadLocal、AQS、线程安全集合类
Java并发编程(三)——ThreadLocal、AQS、线程安全集合类一、ThreadLocal详解1.1 ThreadLocal的使用1.2 ThreadLocal实现原理1.3 ThreadLocal内存泄漏1.3.1 强、软、弱、虚、四大引用1.3.2 原因分析二、AQS详解2.1 AQS介绍2.2 AQS源码分析2.3 ReentrantLock2.4 ReentrantReadWriteLock读写锁2.5 Semaphore2.6 CountdownLatch2.7 CyclicBarrier原创 2021-08-28 17:42:52 · 926 阅读 · 2 评论 -
Java并发编程(二)——锁相关、Java内存模型、volatile、CAS、原子操作类、线程池
Java并发编程(二)——锁相关、Java内存模型、volatile、CAS、原子操作类、线程池一、Java锁相关1.1 悲观锁和乐观锁1.2 公平锁和非公平锁1.3 死锁(重点)1.4 独占锁(写锁)和共享锁(读锁)1.5 自旋锁(spinlock)1.6 无锁、偏向锁、轻量锁、重量锁二、Java内存模型2.1 是什么JMM?2.2 JMM下三大特性2.3 八种内存交互操作2.4 先行发生原则happens-before三、volatile关键字3.1 volatile特性3.2 内存屏障3.3 DCL双原创 2021-08-28 17:28:46 · 648 阅读 · 0 评论 -
Java并发编程(一)——进程和线程、Java对象内存布局、synchronized、wait和notify、park和unpack
Java并发编程(一)——进程和线程、Java对象内存布局、synchronized、wait和notify一、进程和线程二、Java线程2.1 创建线程的四种方式2.2 线程的生命周期2.3 线程的状态转换(API层次)2.4 线程运行原理2.5 守护线程三、Java对象内存布局和对象头四、synchronized与锁升级4.1 synchronized关键字4.2 synchronized的锁升级4.2.1 偏向锁4.2.2 轻量级锁4.2.2.1 轻量级锁流程解释4.2.3 Monitor 原理 (重原创 2021-08-21 09:40:11 · 1549 阅读 · 1 评论 -
阻塞队列与线程池总结
阻塞队列与线程池总结一、阻塞队列1.1 阻塞队列接口结构和实现类1.2 BlockingQueue核心方法1.3 阻塞队列API的使用1.4 阻塞队列之同步SynchronousQueue队列1.5 生产者消费者模式(lock实现)1.5 生产者和消费者(阻塞队列实现)二、线程池相关2.1 Callable接口2.2 线程池的架构及优势2.3 线程池的使用2.4 线程池7大参数2.5 线程池底层工作原理2.6 拒绝策略2.7 为什么不用默认创建的线程池?2.8 手写线程池(ThreadPoolExecuto原创 2021-04-05 21:54:21 · 849 阅读 · 0 评论 -
volatile关键字和CAS总结
volatile和CAS总结一、volatile关键字1.1 volatile的理解1.2 JMM内存模型之可见性1.3 volatile不保证原子性1.4 volatile禁止指令重排1.5 volatile的应用(单例模式DCL代码)二、CAS2.1 CAS是什么2.2 CAS底层原理2.3 CAS缺点2.4 ABA问题2.4.1 AtomicReference原子引用2.4.2 AtomicStampedReference版本号原子引用(ABA问题的解决)JUC(java.util.concurr原创 2021-04-01 12:58:46 · 485 阅读 · 1 评论 -
Java常见锁(公平锁、非公平锁、可重入锁、自旋锁、独占锁、共享锁)
Java常见锁(公平锁、非公平锁、可重入锁、自旋锁、独占锁、共享锁)一、公平锁和非公平锁二、java锁之可重入锁(递归锁)三、自旋锁四、独占锁(写锁)/ 共享锁(读锁)/ 互斥锁五、八锁问题一、公平锁和非公平锁公平锁:是指多个线程按照申请锁的顺序来获取锁,类似于排队买饭,先来后到,先来先服务,就是公平的,也就是队列非公平锁:是指多个线程获取锁的顺序,并不是按照申请锁的顺序,有可能申请的线程比先申请的线程优先获取锁,在高并发环境下,有可能造成优先级翻转,或者饥饿的线程(也就是某个线程一直得不到原创 2021-04-01 22:52:01 · 1484 阅读 · 3 评论