![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
systemup_v1
面向框架编程
展开
-
Java锁升级和Synchronized Monitor原理
Java锁升级和Synchronized Monitor原理Java锁升级是JDK对锁的一种优化来加强Java多线程的处理效率,Java中真正实现线程的阻塞与唤醒的是操作是通过底层的系统调用系统调用会进行用户态到内核态的切换并且在切换前需要保存当前的上下文信息,这个过程是相当消耗cpu的在讲锁升级前我们先来来接下Java对象头存储结构与信息,因为锁升级就是在Java对象头内通过状态标志问表示当前锁的状态对象头HotSpot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头(Header)、实原创 2020-06-14 18:30:10 · 275 阅读 · 0 评论 -
CPU 一致性缓存协议MESI
CPU 一致性缓存协议MESI计算机在执行指令的时候都是通过cpu进行逐条执行而在执行指令的过程中势必涉及对数据的读写,而数据基本从磁盘加载到内存中cpu直接使用内存中的数据由于cpu计算速度远大于对内存的读写速度如果任何数据的读写都通过内存cpu的效率将会大打折扣,因此在cpu中引入寄存器作为高速缓存提高系统效率例如i = i + 1当cpu执行该语句时首先将i从内存复制到cpu寄存器中(高速缓存)然后将i加一最后将数据更新到主存中,如果此语句在单线程下执行没有任何问题但是在多线程下会出现问题原创 2020-06-10 22:23:58 · 295 阅读 · 0 评论 -
SpringBoot starter 原理分析
文章目录SpringBoot starter 原理分析简介自动装配原理自动转配中注解介绍SpringBoot starter 原理分析简介SpringBoot starter 是SpringBoot提供自动装配的组件,starter的引入大大的减少了常规spring项目的xml配置,减少了由于配置书写错误,配置缺失等问题引起的项目启动异常。自动装配原理通过添加所需的starter到pom中 maven自动将所需的间接依赖添加到项目中,我们以spring-boot-starter-actuator为原创 2020-06-03 12:02:03 · 1240 阅读 · 0 评论 -
阻塞队列ArrayBlockingQueue源码分析
文章目录同步阻塞队列ArrayBlockingQueue源码分析概述ArrayBlockingQueue类成员变量构造函数关键源码总结同步阻塞队列ArrayBlockingQueue源码分析概述底层基于数组的FIFO阻塞队列队列头存放入队时间最长的元素队尾存放入队时间最短的元素队列一旦创建需指定大小且不可改变ArrayBlockingQueue类成员变量/** 队列中实际存储数组 final 修饰符修饰的表成员变量需要在对象初始化时同步初始化 即通过构造函数初始化*/final Obj原创 2020-05-26 12:12:40 · 117 阅读 · 0 评论 -
阻塞队列LinkedBlockingQueue源码分析
同步阻塞队列LinkedBlockingQueue源码分析概述底层基于链表的FIFO队列队列头存放入队时间最长的元素队尾存放入队时间最短的元素新入队元素插入到队列尾部,遍历队列从头部开始LinkedBlockingQueue吞吐量高于ArrayBlockingQueue默认容量Integer.MAX_VALUELinkedBlockingQueue 成员变量/** * LinkedBlockingQueue中节点类 */static class Node<E> {原创 2020-05-27 18:05:06 · 125 阅读 · 0 评论