07 2019 档案

摘要:一、业务场景 同一个jvm里多个线程操作同一个有状态的变量,可以通过JVM内的锁保证线程安全。 如果是多个JVM操作同一个有状态的变量,如何保证线程安全呢? 这时候就需要分布式锁来发挥它的作用了 二、特点 分布式系统往往业务流量比较大、并发较高,对分布式锁的高可用和高性能有较高的要求。一般分布式锁的 阅读全文
posted @ 2019-07-23 20:15 leon66666 阅读(1861) 评论(0) 推荐(0) 编辑
摘要:一、分类 MySQL的锁机制不同的存储引擎支持不同的锁机制,分为表级锁、行级锁、页面锁。MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁;InnoDB存储引擎既支持行级锁( 阅读全文
posted @ 2019-07-19 19:44 leon66666 阅读(661) 评论(0) 推荐(0) 编辑
摘要:一、和CMS对比 G1 CMS 设计原则 首先收集尽可能多的垃圾(Garbage First) 尽可能少而块地执行GC,以停顿时间为目标 垃圾回收时机 启发式算法,在老年代找出具有高收集收益的分区进行收集 内存耗尽(新生代)或者快耗尽(老年代) 内存划分 将内存划分为一个个相等大小的内存分区(Reg 阅读全文
posted @ 2019-07-17 14:52 leon66666 阅读(1954) 评论(0) 推荐(0) 编辑
摘要:一、简介 Concurrent Mark Sweep,是一种以获取最短回收停顿时间为目标的收集器,尤其重视服务的响应速度。 CMS是老年代垃圾回收器,基于标记-清除算法实现。新生代默认使用ParNew收集器,基于复制算法 二、垃圾回收过程 分为四个步骤进行垃圾回收:初始标记,并发标记,重新标记,并发 阅读全文
posted @ 2019-07-15 20:59 leon66666 阅读(3109) 评论(0) 推荐(2) 编辑
摘要:一、简介 大家都知道,HashMap中定位到桶的位置 是根据Key的hash值与数组的长度取模来计算的。 JDK8中的hash 算法: 取模算法: 二、深入分析 1、取模算法为什么用的是位与运算? 由于位运算直接对内存数据进行操作,不需要转成十进制,因此处理速度非常快。 对2的倍数取模,只要将数与2 阅读全文
posted @ 2019-07-02 17:26 leon66666 阅读(2483) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示