自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis探寻之路 - 服务器策略

的 key(这个是最常用的)。当一个sentinel接收到一条信息后,会根据SentinelID检查,如果不是自己的Sentinel发送的,将根据信息的参数对主服务器的实例结构做更新。相反地,如果源节点没能在自己的数据库里面找到指定的键,那么这个键有可能已经被迁移到了目标节点,源节点将向客户端返回一个ASK错误,指引客户端转向正在导人槽的目标节点,并再次发送之前想要执行的命令。主服务器每次向从服务器传播N个字节的数据时,主服务器的复制偏移量加上N,从服务器接收到数据时,从服务器的复制偏移量也加上N。

2023-09-21 21:16:44 30

原创 Redis成长之路 - 数据结构

SDS以空字符结尾,保存空字符的1字节空间不计算在SDS的len属性中,以空字符结尾好处是可以之IE重用一部分C字符串函数库里的函数链表提供了高效的节点重排能力,以及顺序性的节点访问方式,并且可以通过增删节点来灵活地调整链表的长度。Redis构建了自己的链表实现,当一个列表键包含了数量比较多的元素,或者列表中包含的元素都是比较长的字符串时,Redis就会使用链表作为列表键的底层实现。每个链表节点都是由listNode结构来实现的。

2023-09-21 21:13:42 29

原创 并发编程探寻之路 - 共享模型值之内存无锁工具

全称是 AbstractQueuedSynchronizer,是阻塞式锁和相关的同步器工具的框架用 state 属性来表示资源的状态(分独占模式和共享模式),子类需要定义如何维护这个状态,控制如何获取 锁和释放锁getState - 获取 state 状态setState - 设置 state 状态compareAndSetState - cas 机制设置 state 状态独占模式是只有一个线程能够访问资源,而共享模式可以允许多个线程访问资源。

2023-09-21 21:09:12 49

原创 并发编程探寻之路 - 进程线程管程

本次课使用阻塞式的解决方案:synchronized,来解决上述问题,即俗称的【对象锁】,它采用互斥的方式让同一 时刻至多只有一个线程能持有【对象锁】,其它线程再想获取这个【对象锁】时就会阻塞住。比如在项目中,视频文件需要转换格式等操作比较费时,这时开一个新线程处理视频转换,避免阻塞主线程 tomcat 的异步 servlet 也是类似的目的,让用户线程处理耗时较长的操作,避免阻塞 tomcat 的工作线程 ui 程序中,开线程进行其他操作,避免阻塞 ui 线程。方法是Java中的一个线程阻塞工具。

2023-09-21 21:07:03 44

原创 java虚拟机成神之路 - 虚拟机字节码执行引擎

如果执⾏的是实例⽅法(没有被static修饰的⽅法),那局 部变量表中第0位索引的变量槽默认是⽤于传递⽅法所属对象实例的引⽤,在⽅法中可以 通过关键字“this”来访问到这个隐含的参数。“虚拟机”是一个相对于“物理机”的概念,这两种机 器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层 面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执 行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式。

2023-09-21 20:54:50 26

原创 java虚拟机成神之路 - 虚拟机类加载机制

Java虚拟机把描述类的Class文件加载到内存,并对数据进行校验、转换解析和初始化,形成可以被虚拟机直接使用的Java类型,这个过程是虚拟机的类加载机制一个类型被加载到虚拟机的过程:加载、验证、准备、解析、初始化、使用和卸载。解析阶段是可以变化的。

2023-09-21 20:53:33 27

原创 java虚拟机成神之路 - 垃圾收集器与内存分配策略:

如何确定对象是否死亡:第一个为引用计数算法,对象被引用一次时计数就+1,引用失效时计数就减一,计数值为0时该对象已经死亡不能被使用。但是当两个不可能再被引用的对象互相引用时,就发生问题。现在主流的虚拟机几乎不适用引用计数算法来管理内存。第二个为可达性分析算法:从根节点GC Roots进行向下搜索,与之关联的都是存活对象,没搜索到的都是不可能再被使用的对象。GCRoots不可达的会被判定为可回收对象,当第二次。

2023-09-21 15:55:46 36

原创 java虚拟机成神之路 - JVM内存区域与内存溢出异常

类检查通过后加载对象的内存,假设内存是按区域划分的,空闲内存在指针的一边,使用过的内存在指针的另一边,挪动指针来分配内存大小,称为指针碰撞的方式。这个算法的基本思路就是通过 一系列称为“GC Roots”的根对象作为起始节点集,从这些节点开始,根据引用关系向下搜索,搜索过 程所走过的路径称为“引用链”(Reference Chain),如果某个对象到GC Roots间没有任何引用链相连, 或者用图论的话来说就是从GC Roots到这个对象不可达时,则证明此对象是不可能再被使用的。**方法区**:线程共享。

2023-09-21 15:50:18 34

Demo1.java

Demo1.java

2023-03-02

空空如也

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

TA关注的人

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