![](https://img-blog.csdnimg.cn/20200205131205311.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
并发基础
并发基础知识
橙子AQA
这个作者很懒,什么都没留下…
展开
-
简述AQS设计之道
引文说起AQS(AbstarctQueuedSynchronizer)不得不提起JUC,JUC包中几乎百分之80%以上的同步实现都是采用AQS实现的。即使没有直接用到AQS也是间接的用到了AQS的三大核心思想。所以与其在文中给大家一词一句的分析代码,不如给大家讲讲AQS的背后核心思想(简称AQS三板斧),因为源码大家都安装有jdk,可以自己看。但是很多时候代码是看懂了,其背后的原理没有搞懂。...原创 2020-02-12 21:09:25 · 399 阅读 · 0 评论 -
JVM类加载器
一、JVM内置三大加载器 BootStrap ClassLoader | ...原创 2020-02-11 09:37:05 · 122 阅读 · 0 评论 -
Hook线程以及捕获线程异常
//调用线程回调方式,因为run方法不能抛出checked异常。所以发生异常后需要通过此方法回调异常至派生它的线程public void setUncaughtExceptionHandler(UncaughtExceptionHandler eh);public static void setDefaultUncaughtExceptionHandler(UncaughtExceptio...原创 2020-02-09 09:07:40 · 226 阅读 · 0 评论 -
BooleanLock实现
之所以采用booleanLock是因为传统的synchronized无法控制时间,也不可中断。public interface Lock{ void lock() throws InterruptedException; void lock(long mills) throws InterruptedException ,TimeoutException; vo...原创 2020-02-10 09:11:42 · 256 阅读 · 0 评论 -
对象访问方式
HotSpot虚拟机对象探秘通过上面的介绍我们大概知道了虚拟机的内存情况,下面我们来详细的了解一下HotSpot虚拟机在Java堆中对象分配、布局和访问的全过程。3.1 对象的创建(重点)下图便是Java对象的创建过程,我建议最好是能默写出来,并且要掌握每一步在做什么。①类加载检查: 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到这个类的符号引用...原创 2020-02-10 09:11:18 · 207 阅读 · 0 评论 -
JMM
Java内存模型(Java Memory Model ,JMM)就是一种符合内存模型规范的,屏蔽了各种硬件和操作系统的访问差异的,保证了Java程序在各种平台下对内存的访问都能得到一致效果的机制及规范。目的是解决由于多线程通过共享内存进行通信时,存在的原子性、可见性(缓存一致性)以及有序性问题。Synchronize关键字实现原理介绍原创 2020-02-10 09:17:48 · 532 阅读 · 0 评论 -
线程状态汇总
常见状态汇总 Thread类中定义的状态 Thread.cpp中定义的状态 状态说明 NEW INITIALIZING 新建,正在初始化,为其分配资源 NEW STARTING 新建,正在启动 RU...原创 2020-02-11 09:35:09 · 131 阅读 · 0 评论 -
类的加载机制
类加载加载: 获取类的字符流 将类的静态数据结构解析成方法区的运行时数据结构 提供一个Class对象访问方法区的数据结构 验证 校验魔术因子,版本等 准备 将类变量初始化成0值,final赋常量初始值 解析 将符号引用转换成直接引用 初始化 执行类的<clinit>方法,由编译器收集类的成员变量赋值,static块组合成此方法,绝对的线程...原创 2020-02-11 09:38:08 · 115 阅读 · 0 评论