JVM运行时数据区域
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分成为若干个不同的数据区域。 程序计数器(Program Counter Register) 每一个线程都有一个程序计数器,各线程之间互不影响,独立存储,属于线程的私有内存。如果线...
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分成为若干个不同的数据区域。 程序计数器(Program Counter Register) 每一个线程都有一个程序计数器,各线程之间互不影响,独立存储,属于线程的私有内存。如果线...
在Java虚拟机中,如果reference类型的数据中存储的数值代表的是另外一块内存的起始地址,就称这块内存代表着一个引用。一共有4类引用: 强引用(Strong Reference) 类似Object obj = new Object()...
获取 IDEA 激活码、PyCharm 激活码、WebStorm 激活码和 DataGrip 激活码,提供详细破解教程与永久激活方法。支持 IDEA 永久激活与破解,免费获取注册码与激活码,解决 2024/2025 版本激活问题,轻松实现所有 JetBrains 工具的激活。
最近一直在研究AQS的源码,希望可以更深刻的理解AQS的实现原理。虽然网上有很多关于AQS的源码分析,但是看完以后感觉还是一知半解。于是,我将自己的整个理解过程记录下来了,希望对大家有所帮助。 基本原理 AQS是Java中锁的基础,主要由两...
同步和异步,阻塞和非阻塞是大家经常会听到的概念,但是它们是从不同维度来描述一件事情,常常很容易混为一谈。 1. 同步和异步 同步和异步描述的是消息通信的机制。 同步 当一个request发送出去以后,会得到一个response,这整个过程就...
Redis的发布和订阅功能分为频道订阅和模式订阅两种。每当有其他客户端向被订阅的频道发送消息时,频道的所有订阅者都会收到这条消息。 频道订阅 当一个客户端执行SUBSCRIBE命令订阅某个或某些频道时,这个客户端与被订阅频道之间就建立起了一...
Redis通过MULTI、EXEC、WATCH、DISCARD等命令来实现事务功能。主要有以下三个阶段: 事务开始 MULTI命令的执行,标识着一个事务的开始。MULTI命令会将客户端状态的flags属性中打开REDIS_MULTI标识来完...
常见的IO事件处理模型有两种:Reactor和Proactor。Redis中的ae就是采用的Reactor事件处理模型,Proactor需要操作系统的支持,目前暂时还没接触到相关的使用场景,主要是学习模型结构。 Reactor模型 Hand...
在深入理解select、poll和epoll之间的区别之前,首先要了解什么是IO多路复用模型。 IO多路复用 简单来说,IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备就绪,它就通知该进程去进行IO操作。 详细的描述可以参考I...
什么是IO 在Linux世界里,一切皆文件。文件就是一串二进制流,不管是socket、FIFO、管道还是终端,对我们来说一切都是文件,一切都是流。在信息交换的过程中,我们都是对这些流进行数据的收发操作,简称为I/O操作(Input and ...
Redis集群是Redis提供的分布式数据库方案,集群通过分片(Sharding)来进行数据共享,并提供复制和故障转移功能。 节点 一个节点就是一个运行在集群模式下的Redis服务器,Redis服务器在启动的时候会根据cluster-ena...