![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JUC并发编程
文章平均质量分 90
始末丶Yzx
这个作者很懒,什么都没留下…
展开
-
AQS(AbstractQueuedSynchronizer) 框架源码解析
AQS框架源码解析什么是AQSAQS 内部体系架构内部类 Node 结构AQS 同步队列基本结构源码解析本次以非公平锁开始分析抢锁解锁回到前面线程抢锁阻塞处 什么是AQS 用来构建锁或其他同步器组件的重量级基础框架及整个 JUC体系的基石,通过内置的 CLH队列的变种来完成资源获取线程的排队工作,将每条要去抢占资源的线程封成一Node节点来实现锁的分配,有一个 int 的 state 变量表示持有锁的状态,通过 CAS 完成对 state 变量的修改 0表示没有,1表示阻塞, 大于1表示可重入锁 AQS原创 2021-01-23 15:00:23 · 134 阅读 · 0 评论 -
线程池及原理
线程池及原理线程池的好处创建线程池的三大方法Executors 创建的弊端:创建线程池七大参数四大拒绝策略最大线程池如何定义线程池中的线程创建流程 线程池的好处 降低资源的消耗 提高响应的速度 方便管理 线程复用,可以控制最大并发数,管理线程 创建线程池的三大方法 线程池不允许使用 Executors 去创建,而是通过 ThreeadPoolExecutor 的方式 Executors.newSingleThreadExecutor(); // 单个线程 Executors.newFixedTh原创 2021-01-23 14:21:27 · 53 阅读 · 0 评论 -
Java中的各种锁机制
Java中的各种锁机制产生死锁具备条件SynchronizedSynchronized 原理JVM 对 Synchrogazerd 的优化锁升级ReentrantLock公平锁与非公平锁可重入锁锁消除锁粗化悲观锁乐观锁读写锁CAS(比较并交换)Synchronized 和 Lock 区别 产生死锁具备条件 互斥条件: 该资源任意时刻都只能由一个线程占用 无法破坏 请求与保持条件: 一个进程因请求资源而阻塞时, 对以获取的资源不放 解决方案: 一次性申请所有资源 不剥夺条件: 线程已获得的资源在原创 2021-01-23 11:34:30 · 179 阅读 · 0 评论 -
多线程知识点
多线程知识点线程与进程并发与并行线程状态wait 与 sleep 区别什么是JUCJUC中的并发工具JUC 中同步器 线程与进程 进程 一个程序, QQ.exe 等, 程序的一次执行过程, 是系统运行程序的基本单位, 系统运行一个程序是一个进程重创建, 运行到消亡的过程 一个进程可以包含多个线程, 至少保护一个线程 线程 程序执行的一条路径, 比进程更小的执行单位. 一个进程在执行过程中可以产生多个线程 每个线程都有自己的程序计数器, 虚拟机栈和本地方法栈 并发与并行 并发 多线程操作一个线程,原创 2021-01-23 10:15:25 · 71 阅读 · 0 评论