JUC - 防止CPU占满

while(true) { try { Thread.sleep(50); } catch (InterruptedException e) { e.printStackTrace(); }}在没有利用cpu来计算时,不要让while(true)空转浪费CPU,这时可以使用yield或sleep来让


JUC - 两阶段终止

我们根据interrupt方法的特点以及sleep等方法与interrupt互动的特性,我们可以写出两阶段终止的代码,如果我们在线程sleep的时候中断了线程,此时会出现异常,同时interrupt状态会被重置,那我们就可以在catch块内重新设置当前线程的interrupt状态,在下次循环中终止线


JUC-线程

线程的创建继承Thread类public class Test1 { public static void main(String[] args) { var t1 = new Thread("t1") { @Override


Tomcat调优配置参数

Tomcat主要的调优配置,主要集中于Connector(连接器)的调优了,偶尔也会配置Excecutor的调优Tomcat 9.0 有三类 ConnectorHttp/1.1(Http Connector)Http/2(Http2 Upgrade Protocol(Tomcat 8.5引入)AJP


MySQL集群 - MHA

MHA 功能故障切换保证故障切换的过程中数据丢失尽可能少保证故障切换之后,其他从库与新的主库一致MHA 原理如果宕机的主库仍可通过SSH连接,MHA会保存主库的binlog根据从库的binlog位置,找到包含最新更新的从库作为备用主库应用差异的relay log到其他从库,保持从库和备用主库数据一致


MySQL集群 - PXC

Percona XtraDB Cluster(PXC)组通信:定义了数据库节点间的通信模式,保证复制数据的一致性Write-Set Replication AJPI:为上层提供丰富的状态信息及回调函数,实现多点写入及同步复制写集:一个将要被复制的事务写集中不仅包含对事物影响的所有行的主键(组成写集的


MySQL数据库集群 - 主从

原理三种线程binlog dump thread根据从节点IO thread的请求,分批读取binlog文件指定位置之后的信息并返回从节点io thread当从节点执行START SLAVE命令开启主从复制后,从节点会创建IO thread用来连接主节点,请求指定binlog,指定位置之后的日志内容


MySQL数据库安装笔记

之前一直是使用docker安装数据库,这里使用原生系统来尝试下安装mysql首先要选择好所使用系统的存储库https://dev.mysql.com/doc/refman/8.0/en/linux-installation.html这里使用Centos7作为系统下载MySQL的 yum源wget h


Spring Security 的Crypto模块

密钥生成器有两个接口表示两种主要类型的密钥生成器,ByteKeyGenerator和StringKeyGenerator,可以使用工厂类KeyGenerators直接构建它们,


快速排序

fun quickSort(array: IntArray, left: Int, right: Int) { if (left >= right) { return; } val x = array[(left + right+1) shr 1] var