自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (1)
  • 收藏
  • 关注

原创 MVCC原理解析

MVCC ACID 首先,介绍一下数据库ACID四种特性 原子性:通过undo log实现,事务执行要么全部成功,要么全部失败 一致性: 通过原子性+隔离性+持久性配合实现 隔离性:通过锁+MVCC(多版本并发控制实现) 持久性:通过redo log实现 事务隔离级别 事务四种隔离级别以及会带来的问题 读未提交:脏读,不可重复读,幻读 读已提交:不可重复读,幻读 可重复度:幻读 串行化:无 其中读未提交没有做任何控制,而串行化则是事务串行执行,会导致数据库性能低,而读已提交和可重复度都是基于锁+mv

2021-03-18 16:24:09 180

原创 幻读以及幻读的解决方案

幻读场景 事务A 事务B 事务A按照特定的条件查询数据,查询到了2条数据 事务B插入一条数据 commit 事务A按照原条件查询数据,查询到还是2条数据 事务A修改其中一条数据的值update,看到修改的范围是3条数据 事务A按照原条件查询数据,查询到3条数据 为什么出现幻读:主要原因是快照读和当前读混合使用 首先事务A执行了3次读取操作 第一次和第二次操作都是执行的快照读,如果是可重复读的隔离级别下。这两次读取的数据是一致的。 而 for upd

2021-03-18 16:06:43 726

原创 Java多线程之FutureTask源码深入浅出

Java中启动线程的3中方法,本文也是主要围绕着启动一个线程执行任务的方法为中心,比较详细的描述了源码中的实现。其实主要也是FutureTask这个实现类中的一些代码实现。如有不当之处,敬请指正。 本文起源还得从三行代码说起: FutureTask future = new FutureTask(()->{return 111;}); //callable任务在FutureTask中是如何执行 new Thread(future).start(); //阻塞获取线程执行结果 System.out.pr

2021-03-16 11:48:34 191 1

原创 排序算法总结(你想要的排序,这里都有)

排序算法的总结 首先,对于所有的排序做一个总结,随后是所有排序的实现方式 排序算法的稳定性 稳定性是指同样大小的样本再排序不会改变次序 对于基础类型的排序 对于非基础类型的排序来说,稳定性有重要的意义(比如结果需要年龄有序并且年龄相等身高有序) 有些排序算法可以实现稳定性,有的排序算法无论如何都无法实现稳定 速记 时间复杂度 额外空间复杂度 稳定性 选择排序 最小最前 O(N²) O(1) 无 冒泡排序 最大最后 O(N²) O(1) 有 插入排序 逐步有序 O(N²) O(1)

2020-06-29 14:51:05 211

原创 强软弱虚四种引用类型

软引用 非必须的引用,如果空间不够用的情况下,会回收软引用的内存空间 /** * 软引用 * 软引用是用来描述一些还有用但并非必须的对象。 * 对于软引用关联着的对象,在系统将要发生内存溢出异常之前,将会把这些对象列进回收范围进行第二次回收。 * 如果这次回收还没有足够的内存,才会抛出内存溢出异常。 * -Xms20m -Xmx20m */ package com.mashibing.juc.c_022_RefTypeAndThreadLocal; import java.lang.ref.

2020-06-17 16:35:13 137

原创 要求用线程顺序打印A1B2C3…Z26

要求用线程顺序打印A1B2C3…Z26 wait notify实现 package com.mashibing.juc.c_026_00_interview.A1B2C3; public class T01_00_Question { public static void main(String[] args) { Object lock = new Object(); //要求用线程顺序打印A1B2C3....Z26 new Thread((

2020-06-10 10:20:52 484

原创 Xshell突然连不上CentOS虚拟机

查看网卡信息 ifconfig 发现网卡已经掉了,只剩下了回环地址 查看所有网卡的信息 ifconfig -a 重启网络发现报错service network restart 使用以下命令 systemctl stop NetworkManager systemctl disable NetworkManager 最后重启网卡 systemctl restart network ok,问题解决!!!! ...

2020-05-29 21:49:38 304

原创 java程序员应该熟悉的底层知识

不求甚解,观其大略! 汇编语言(机器语言)的执行过程 汇编语言的本质:机器语言的助记符号,就是机器语言 ​ 比如 move --> 10001000 在汇编语言中的move在执行的时候就会在对应的表中找到对应的记录并变成10001000 的value值 计算机通电–>CPU读取内存中的程序(电信号输入)–>时钟发生器不断震颤通电–>推动CPU内部一行一行的执行(执行多少步取决于指令需要的时钟周期)–>计算完成–>写回(电信号)–>写给显卡输出(sout,或者图

2020-05-26 21:06:41 754

原创 一次生产OOM问题排查

现象分析: 我们有一个生产服务,规模是12台机器*6个节点 = 72个节点的服务,最近老是出现某个节点突然挂掉的情况,问题出现频繁,一天需要重启很多个节点 查看tomcat日志,发现是堆内存溢出 使用jmap -heap pid查看各个JVM内存空间的使用情况发现,所有的内存都被占满了,如下图所示: 发现堆内存的确都被吃完了 使用top查看各个pid吃资源的情况后发现OOM的节点的CPU资源占用特别高,基本都在100%以上 疯狂吃CPU推断应该是在JVM在进行fullGC(回收老年代,在进行fullGC

2020-05-23 17:48:39 1072

apache-jmeter-5.2.tgz

linux端的jmeter压力测试工具包。用于搭建linux端的分布式压力测试或者单点的压力测试。在linux端搭建可以很好的优化在大并发下windows端口回收慢的问题

2020-05-29

空空如也

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

TA关注的人

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