-
Spring Cloud 组件分析
Spring Cloud 快速开发分布式应用的工具集Spring Cloud 主要功能 功能 功能详情 组件 Distributed/versioned configuration 分布式/版本化配置管理 Spring Cloud Config; Consul; Zookeeper; Nacos Service registration and discovery ...…
-
多线程之 ThreadLocal
Pre talk ThreadLocal 是什么?解决了什么问题? ThreadLocal 源码分析及实现原理 ThreadLocal 内存泄漏问题 InheritableThreadLocal 的实现原理Pre talk线程封闭技术访问共享可变数据时,通常需要使用同步,同步会产生性能问题,如何避免使用同步的方式来保证线程安全问题 – 不共享数据, 如何保证数据不共享呢?如果仅仅是在单线程内访问数据,就不会存在数据共享的问题,也就不需要数据同步。 (线程封闭: Thread C...…
-
多线程
进程和线程的区别抽象答案:进程是资源分配的最小单位, 线程是 CPU 调度的最小单位如何组织语言能够描述清楚呢? 一个进程可以包含多个线程 进程间难以数据共享, 但是同一进程下的不同线程是可以进行数据共享的; 进程比线程消耗更多的 CPU 资源; 进程与进程之间的运行不会相互影响, 但是线程之间会相互影响; 一个线程使用共享内存时,其他线程必须等待他结束,才能使用这块区域(互斥锁) 进程使用的内存地址可以限定使用量(信号量)………
-
聊聊 GC
– Java 垃圾回收机制– 常见的垃圾收集器– Java 中的各种引用Java 垃圾回收机制对象什么情况下被看作是垃圾?对象不被任何其他对象引用时,就可以被认为是垃圾对象,就可以被内存回收如何判断对象是否为垃圾? 引用计数算法 判断对象的引用数量来决定是否可以被回收,引用计数器为 0 时就可以被回收; 但是不可避免循环引用的问题; 可达性分析算法(主流的 JVM 使用的算法) 判断对象的引用链是否可达, 来决定队形是否...…
-
Java 内存模型
内存简介 JVM 架构图 Java 内存模型内存 计算机程序都是在内存中运行的(包括虚拟内存)在程序运行过程中, 需要不断的将内存的「逻辑地址」和「物理地址」进行映射,找到相关的【指令】以及【数据】去执行逻辑地址 -> 分段管理机制 -> 线性地址 -> 分页管理机制 -> 物理地址Java 程序实际上是一个操作系统进程, 与其他进程一样面临内存限制,即受限于操作系统架构提供的「可寻址地址空间」 (可寻址地址空间由处理器的位数决定(32位/64位)...…