author avatar

爱国、奋斗、奉献

线程并发锁

synchronized关键字的底层原理 概念:Synchronized【对象锁】采用互斥的方式让同一时刻至多只有一个线程能持有【对象锁】,其它线程再想获取这个【对象锁】时就会阻塞住。 synchronized 依赖 JVM 内部的 Monitor 对象来实现线程同步。使用的时候不用手动去 lock

什么是CAS

CAS的全称是: Compare And Swap(比较再交换),它体现的一种乐观锁的思想,在无锁情况下保证线程操作共享数据的原子性。 在JUC( java.util.concurrent )包下实现的很多类都用到了CAS操作 AbstractQueuedSynchronizer(AQS框架) At

Java 内存模型(JMM)

注意:Java 内存模型(JMM)和 Java 运行时内存区域是两个概念! 【前置】共享变量是什么: 什么是共享变量? 对于每一个线程来说,栈都是私有的,而堆是共有的。 也就是说,在栈中的变量(局部变量、方法定义的参数、异常处理的参数)不会在线程之间共享

redis常用命令

①、操作字符串的命令有: SET key value:设置键 key 的值为 value。 GET key:获取键 key 的值。 DEL key:删除键 key。 INCR key:将键 key 存储的数值增一。 DECR key:将键 key 存储的数值减一。 ②、操作列表的命令有: LPUSH

二叉树+二叉搜索树+红黑树

二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子节点和右子节点。 不过,二叉树并不要求每个节点都有两个子节点,有的节点只有左子节点,有的节点只有右子节点。 二叉树每个节点的左子树和右子树也分别满足二叉树的定义。

List与ArrayList

数组 数组(Array)是一种用连续的内存空间存储相同数据类型数据的线性数据结构。 int[] array = {22,33,88,66,55,25}; 栈内存会指向堆内存地址 寻址公式

系统U盘制作记录

这篇文章记录的是Refus制作系统盘的过程,实际上如果多个系统存在,每次格式化很麻烦,所以可以使用Ventoy 地址:Ventoy 第一次正常安装是失败的,后来通过iso引导安装(里面是个小linux系统)成功装上了,可能是因为拔插次数太多损坏了U盘。后来买了块新的U盘,正常安装就成功了。 界面大概

SQL优化总结(更新中)

表设计的优化 设置合适的数值类型,tinyint int bigint 设置合适的字符串类型,char定长效率高,varchar可变长度效率低 SQL语句优化 <

Elasticsearch笔记(更新中)

安装 安装ES(linux) 下载地址: 安装完成后,访问9200端口,即可看到响应的Elasticsearch服务的基本信息

并发测试

100并发5分钟,梯度测试网站首页。 服务器配置:阿里ECS 2h2g 三千请求: 累计请求数 失败次数 失败率 TPS(吞吐量) TPS(吞吐量) TPS(吞吐量) 响应时间(ms) 响应时间(ms) 响应时间(ms) 响应时间(ms) 响应时间(ms) 响应时间(ms) 流量(KB/sec) 流