自定义博客皮肤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原理解析

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

2021-03-18 16:24:09 182

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

幻读场景事务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…Z26wait 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 485

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

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

2020-05-29 21:49:38 305

原创 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关注的人

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