- 博客(9)
- 收藏
- 关注
原创 从rocketmq入手,解析各种零拷贝的jvm层原理
在上一篇文章中,主要介绍了rocketmq消息的存储流程。其主要使用了mmap的零拷贝技术实现了硬盘和内存的映射,从而提高了读写性能。在流程中有一个非常有意思的预热方法并没有详细分析,因为其中涉及到了一些系统方法的调用。而本文就从该方法入手,进而分享除了mmap之外,还有哪些零拷贝方法,以及他们的系统底层调用是怎样的。本文的主要内容1.page cache与mmap的关系2.rocketmq对零拷贝的使用和优化3.transferTo/From的零拷贝4.splice的零拷贝1.page cac
2022-05-14 18:36:56 392
原创 Redis Hyperloglog的原理及数学理论的通俗理解
redis hyperloglog原理和其背后数学思想的通俗理解,没有任何数学公式!!扔扔硬币就能学会~
2022-01-24 17:15:21 929 1
原创 JNI-从jvm源码分析Thread.sleep、synchronized、LockSupport.park的线程阻塞的区别
前言在日常编码的过程中,我们经常会使用Thread.sleep、LockSupport.park()主动阻塞线程,或者使用synchronized和Object.wait来阻塞线程保证并发安全。此时我们会发现,对于Thread.sleep和Object.wait方法是会抛出InterruptedException,而LockSupport.park()和synchronized则不会。而当我们调用Thread.interrupt方法时,除了synchronized,其他线程阻塞的方式都会被唤醒。于是本文
2020-11-22 18:21:01 820 1
原创 JNI-从jvm源码分析Thread.interrupt的系统级别线程打断原理
前言在java编程中,我们经常会调用Thread.sleep()方法使得线程停止运行一段时间,而Thread类中也提供了interrupt方法供我们去主动打断一个线程。那么线程挂起和打断的本质究竟是什么,本文就此问题作一个探究。本文主要分为以下几个部分1.interrupt的使用特点2.jvm层面上interrupt方法的本质3.ParkEvent对象的本质4.Park()对象的本质5.利用jni实现一个可以被打断的MyThread类1.interrupt的使用特点我们先看2个线程打断的示
2020-11-22 12:20:26 244
原创 JNI-从jvm源码分析Thread.start的调用与Thread.run的回调
前言在java编程中,线程Thread是我们经常使用的类。那么创建一个Thread的本质究竟是什么,本文就此问题作一个探索。内容主要分为以下几个部分1.JNI机制的使用2.Thread创建线程的底层调用分析3.系统线程的使用4.Thread中run方法的回调分析5.实现一个jni的回调1.JNI机制的基本使用当我们new出一个Thread的时候,仅仅是创建了一个java层面的线程对象,而只有当Thread的start方法被调用的时候,一个线程才真正开始执行了。所以start方法是我们关注的
2020-11-22 12:16:31 624 1
原创 Java动态代理—框架中的应用场景和基本原理
前言之前已经用了5篇文章完整解释了java动态代理的原理,本文将会为这个系列补上最后一块拼图,展示java动态代理的使用方式和应用场景主要分为以下4个部分1.为什么要使用java动态代理2.如何使用java动态代理3.框架中java动态代理的应用4.java动态代理的基本原理1.为何要使用动态代理在设计模式中有一个非常常用的模式:代理模式。学术一些来讲,就是为某些对象的某种行为提供一个代理对象,并由代理对象完全控制该行为的实际执行。通俗来说,就是我想点份外卖,但是手机没电了,于是我让同学用
2020-11-22 12:11:55 433
原创 比AtomicInteger更优的多线程计数类:LongAdder原理分析
前言最近在学习ConcurrentHashMap的源码,发现它采用了一种比较独特的方式对map中的元素数量进行统计,自然是要好好研究一下其原理思想,同时也能更好地理解ConcurrentHashMap本身。本文主要思路分为以下5个部分1.计数的使用效果2.原理的直观图解3.源码的细节分析4.与AtomicInteger的比较5.思想的抽象学习的入口自然是map的put方法public V put(K key, V value) { return putVal(key, value,
2020-11-22 11:46:11 186
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人