自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 spring日志相关jcl slf4j

spring 5.0以下日志使用 jcl commons-logging commons-logging通过循环加载相应的类文件,尝试使用log4j、jul等日志工具,直到对应的类存在加载成功。private static final String[] classesToDiscover = { LOGGING_IMPL_LOG4J_LOGGER, "org.apache.commons.logging.impl.Jdk14Logger",

2020-06-17 17:45:47 429

原创 AQS源码解析(中)

接上篇 AQS源码解析(上) private void cancelAcquire(Node node) { // Ignore if node doesn't exist if (node == null) return; node.thread = null; // Skip cancelled predecessors /** * 此处和shouldParkAfterFail

2020-05-09 13:10:34 191

原创 AQS源码解析(上)

CLH队列

2020-05-08 19:20:37 208

原创 JMM本质及内存可见性原理分析

处理器lock前缀指令内存屏障 + 缓存一致性协议(MESI) + 总线嗅探技术 + … = 内存可见操作系统mutex锁操作系统实现线程互斥的一种手段(或者被称为系统接口),而lock前缀指令是保证mutex互斥锁实现原子性操作的更底层的机制。JMM内存模型JVM内存模型分为主内存和本地内存,每个线程都有对应的本地内存,存储的是主内存的变量副本。本地内存只是个逻辑概念,其实质就是CP...

2020-04-21 17:26:25 391

原创 Volatile底层原理剖析

基础知识回顾计算机CPU执行指令的时候是非常快的,如果每执行一个指令都从内存中取数据的话,那会非常慢,严重影响CPU的执行速度,所以每个CPU都有自身对应的高速缓冲区(多级寄存器),每个线程被执行的时候,会先把运行时需要的数据复制到告诉缓冲区一份,此高速缓存区只与在该CPU运行的线程有关,然后在当前线程需要CPU执行N多指令的时候,就不用再去内存中拿数据,直接从本地的缓冲区,进而提高CPU的执行...

2020-04-17 12:32:59 777

原创 FastDFS原理及维护

FastDFSfdfs是一个开源分布式存储解决方案,整个集群节点分为storage和trackerstorage真正的存储文件的节点,集群中可以有很多个storage节点,每个节点都是平级的,互为备份。tracker负责协调和管理整个集群,集群中可以有多个tracker,它们都是平级的,为了提高系统的稳定性和吞吐量,建议部署多个tracker。集群关系多个(M)tracker对应多...

2020-04-09 16:38:49 948

原创 零拷贝技术 ZERO COPY

Linux系统内存管理知识补充Linux系统是虚拟内存系统,虚拟内存并不是真正的物理内存,而是虚拟的连续内存地址空间。虚拟内存又分为内核空间和用户空间,内核空间是内核程序运行的地方,用户空间是用户进程代码运行的地方,只有内核才能直接访问物理内存并为用户空间映射物理内存(MMU)。内核会为每个进程分配独立的连续的虚拟内存空间,并且在需要的时候映射物理内存,为了完成内存映射,内核为每个进程都维护了一...

2020-04-01 15:32:44 191

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除