自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RocketMQ功能解析

这个过程是在操作系统完成的,在Java代码层是无法直观看到的,我们可以通过看JDK源码,在JDK的nio包里,java.nio.HeapByteBuffer映射的就是一块JVM内存(会通过byte[]数组缓存数据),所有的读写都是通过直接操作byte[],这个是没有使用零拷贝的普通读写。上面cpu copy每次复制的都是存储的文件内容的copy,而mmap的copy只是保存文件的映射(文件的内存地址、文件大小),所以真实的数据也不需要在用户态进行留存,直接通过操作映射在内核态完成数据复制。

2024-05-04 01:30:26 626

原创 RocketMQ介绍和快速实战

主要介绍RocketMQ的一些基本概念和快速上手实战

2024-04-29 16:39:03 493

原创 ThreadLocal介绍以及源码分析

ThreadLocal是为了解决多线程并发访问的一种方案,它不像Synchronized等其他锁方式,使变量或者代码只能被一个线程访问,而ThreadLocal是为了每个线程提供属于自己线程的变量副本,每个线程读取变量副本都是相互独立的,从而达到线程隔离作用。

2024-04-24 18:25:33 726

原创 AQS介绍和源码解析

AQS(AbstractQueuedSynchronizer),是Java中并发包的核心组件之一,它提供了一种队列同步器的实现方式。我们并发包中经常使用的,例如ReentrantLock、CountDownLatch、Semaphore等都是通过AQS来构建实现的。它的内部是使用一个FIFO等待队列来管理线程的获取和释放锁的顺序,同时使用一个volatile变量来标识锁的状态。AQS我们可以通过继承来进行扩展,但是我们要记得实现tryAcquire和tryRelease等方法来控制锁的获取和释放。

2024-04-23 15:42:23 816 1

原创 线程池介绍以及ThreadPoolExecutor源码解析

文章目录前言1、线程池是什么?2、线程池的基本信息介绍2.1 核心参数2.2 线程池状态:3、ThreadPoolExecutor3.1 使用线程池的简单demo3.3 源码解析3.3.1 excute方法源码分析3.3.2 addWorker添加线程方法源码分析3.3.3 runWorker执行任务方法源码分析3.3.4 getTask获取任务方法源码分析3.3.5 processWorkerExit方法源码分析3.3.6 mainLock4、使用注意事项总结前言随着我们工作经验的提升,以及业务

2024-04-20 18:41:55 574

空空如也

空空如也

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

TA关注的人

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