
笔记
一共22篇文章
专题:第期
-
既然CPU有缓存一致性协议(MESI),为什么JMM还需要volatile关键字?
🧠 为什么 MESI 协议并不足以保证 Java 中的“可见性”语义? 1. MESI 是硬件层级的缓存一致性,volatile 是语言层级的可见性保证 MESI 主要解决“同一物理地址在多核缓存中的副本一致性问题”; 根据MESI,CPU某核(假设CPU0)的缓存行(包含变量x)是M S 或E的时候,如果总线嗅探到了变量x被其其他核(比如CPU1)执行了写操作(remote write)那么CP…... mysticalycc- 40
- 0
-
HashMap负载因子
HashMap 1. Hash 冲突后的数据结构变化(JDK8 之后的优化) 在 JDK8 之前,HashMap 发生冲突后使用的是链表结构,导致在极端情况下时间复杂度退化为 O(n)。 JDK8 开始引入红黑树结构优化: 当某个桶(链表)中的元素个数超过 TREEIFY_THRESHOLD = 8 且容量超过 MIN_TREEIFY_CAPACITY = 64 时,该桶的链表会被转化为红黑树; …... mysticalycc- 50
- 0
-
计算机图形学一:基础变换矩阵总结(缩放,旋转,位移)
变换矩阵总结 摘要 变换矩阵 (Transformation Marices) 在图形学中的重要性不用多说,一切物体的缩放,旋转,位移,都可以通过变换矩阵作用得到。同时在投影 (projection) 变换的时候也有很多应用,本文将会介绍一些简要的变换矩阵。 1 2D线性变换 我们将如下图所示的简单矩阵乘法定义为对向量(x,y)T的线性变换。 1.1 缩放(scaling) 缩放变换是一种沿着坐标…... mysticalycc- 737
- 0
-
Innodb优化
use sys; show status like '%Handler_read%'; select object_type, object_schema, object_name, index_name, count_star, count_read, COUNT_FETCH from performance_schema.table_io_waits_summary_by_…... mysticalycc- 591
- 0
-
Kubernetes 内部的架构
Kubernetes 内部的架构 原文:https://phoenixnap.com/kb/understanding-kubernetes-architecture-diagrams Kubernetes是用于管理容器化应用程序集群的工具。在计算机领域中,此过程通常称为编排。 用管弦乐编排比喻上面的服务编排是很恰当的,就像乐队指挥一样,Kubernetes协调地将许多微服务组合在一起构成了应用程…... mysticalycc- 1.6k
- 0
-
K8S
K8S Linux网络虚拟化 Linux的namespace(名字空间)的作用就是“隔离内核资源”。在Linux的世界里,文件系统挂载点、主机名、POSIX进程间通信消息队列、进程PID数字空间、IP地址、user ID数字空间等全局系统资源被namespace分割,装到一个个抽象的独立空间里。而隔离上述系统资源的namespace分别是Mountnamespace、UTS namespace、I…... mysticalycc- 1.3k
- 0
-
netty内存管理
1、内存管理介绍 内存管理的目的是合理分配内存,减少内存碎片,及时回收资源,提高内存的使用资源。 可以带着以下问题进行研究: 内存池管理算法是如何实现高效内存分配释放,减少内存碎片? 高负载下内存池不断申请/释放,如何实现弹性伸缩? 内存池作为全局数据,在多线程环境下如何减少锁竞争? 常见的一些算法有slab,buddy,jemalloc等经典算法。 Netty中的内存管理应该是借鉴了FreeBS…... mysticalycc- 1.2k
- 0
-
Ribbon负载均衡原理
Ribbon负载均衡原理 ribbon 是一个客户端负载均衡器,可以简单的理解成类似于 nginx的负载均衡模块的功能。 Load Balance负载均衡是用于解决一台机器(一个进程)无法解决所有请求而产生的一种算法。像nginx可以使用负载均衡分配流量,ribbon为客户端提供负载均衡,dubbo服务调用里的负载均衡等等,很多地方都使用到了负载均衡。 主流的Load Balance方案可分成两类…... mysticalycc- 1.1k
- 0
-
链路追踪实现原理
链路追踪实现原理 在分布式系统,尤其是微服务系统中,一次外部请求往往需要内部多个模块,多个中间件,多台机器的相互调用才能完成。在这一系列的调用中,可能有些是串行的,而有些是并行的。在这种情况下,我们如何才能确定这整个请求调用了哪些应用?哪些模块?哪些节点?以及它们的先后顺序和各部分的性能如何呢? 这就是涉及到链路追踪。 什么是链路追踪? 链路追踪是分布式系统下的一个概念,它的目的就是要解决上面所提…... mysticalycc- 1.5k
- 0
-
知识整理
基础部分 一、Java 基础与语言特性(语法/编译相关) Java基础知识 Java基本类型的物理存储大小 正确理解JAVA泛型 为什么局部内部类和匿名内部类只能访问final的局部变量或成员变量 HashMap负载因子 反射抛出自定义异常问题 java.sleep背后的逻辑 Java8 Lambda实现条件去重distinct List java-10-features java-11-feat…... mysticalycc- 1.9k
- 0
-
Redis实现分布式锁
Redis实现分布式锁的7种方案 日常开发中,秒杀下单、抢红包等等业务场景,都需要用到分布式锁。而Redis非常适合作为分布式锁使用。本文将分七个方案展开,跟大家探讨Redis分布式锁的正确使用方式。如果有不正确的地方,欢迎大家指出哈,一起学习一起进步。 什么是分布式锁 方案一:SETNX + EXPIRE 方案二:SETNX + value值是(系统时间+过期时间) 方案三:使用Lua脚本(包含…... mysticalycc- 1.4k
- 0