摘要: # 高并发下的缓存击穿 ## 什么是缓存击穿 缓存击穿是指大量并发访问同一个热点数据,当热点数据失效后同时去请求数据库,瞬间耗尽数据库资源,导致数据库无法使用。比如某手机新品发布,当缓存失效时有大量并发到来导致同时去访问数据库。 ## 如何解决缓存击穿 1. **使用同步锁控制查询数据库的线程** 阅读全文
posted @ 2023-06-26 22:00 渺阴丶 阅读(19) 评论(0) 推荐(0)
摘要: # 高并发下的缓存雪崩 ## 什么是缓存雪崩 缓存雪崩是缓存中**大量key失效**后当高并发到来时导致大量请求到数据库,瞬间耗尽数据库资源,导致数据库无法使用。 造成缓存雪崩问题的原因是是大量key拥有了相同的过期时间,比如对课程信息设置缓存过期时间为10分钟,在大量请求同时查询大量的课程信息时, 阅读全文
posted @ 2023-06-26 22:00 渺阴丶 阅读(18) 评论(0) 推荐(0)
摘要: # 分布式事务、CAP理论、BASE理论 ## 什么是分布式事务? ### 首先理解什么是本地事务? 平常我们在程序中控制事务是利用数据库本身的事务特性来实现的,比如spring中的@Transactional注解,因此叫**数据库事务**。由于应用主要靠关系数据库来控制事务,此数据库只属于该应用, 阅读全文
posted @ 2023-06-26 22:00 渺阴丶 阅读(35) 评论(0) 推荐(0)
摘要: 线程中的常用方法 方法名 static 功能说明 注意事项 start() 启动一个新线 程,在新的线程运行 run 方法 start 方法只是让线程进入就绪,里面代码不一定立刻运行( CPU 的时间片还没分给它)。每个线程对象的start方法只能调用一次,如果调用了多次会出现IllegalThre 阅读全文
posted @ 2023-06-26 21:54 渺阴丶 阅读(14) 评论(0) 推荐(0)
摘要: ## 查看线程和进程的方法 ### 1. windows * 任务管理器可以查看进程和线程数,也可以用来杀死进程 * tasklist 查看进程 * taskkill 杀死进程 ### 2. linux * ps -fe 查看所有进程 * ps -fT -p 查看某个进程(PID)的所有线程 * k 阅读全文
posted @ 2023-06-26 21:54 渺阴丶 阅读(309) 评论(0) 推荐(0)
摘要: ## 创建线程的几种方式 ### 方式1 重写Thread中的run方法 >```java >//方式一 重写Thread中的run方法 >public class CreateThread1 { > public static void main(String[] args) { > //指定线程 阅读全文
posted @ 2023-06-26 21:54 渺阴丶 阅读(7) 评论(0) 推荐(0)
摘要: ## 线程上下文切换(Thread Context Switch) 上下文切换(Context Switch)是指:因为以下一些原因导致 cpu 不再执行当前的线程,转而执行另一个线程的代码 ,导致上下文切换的原因有如下等: * 线程的 cpu 时间片用完 * 垃圾回收 * 有更高优先级的线程需要运 阅读全文
posted @ 2023-06-26 21:54 渺阴丶 阅读(27) 评论(0) 推荐(0)
摘要: ## java获取cpu核心数目 >```java >int processors = Runtime.getRuntime().availableProcessors(); >``` 阅读全文
posted @ 2023-06-26 21:54 渺阴丶 阅读(185) 评论(0) 推荐(0)
摘要: VitualBox导入iso镜像文件(以6.1.32为例) 打开VitualBox 点击新建 输入虚拟机名称并选择安装类型和版本 选择内存大小 选择虚拟文件类型为VDI 选择动态分配 点击创建 选择我们所创建的虚拟机后,点击设置 找到存储 将分配光驱改为第一IDE控制主通道之后,点击右边的小光盘按钮 阅读全文
posted @ 2022-02-27 20:57 渺阴丶 阅读(2853) 评论(0) 推荐(0)
摘要: markdown 基础语法,以typora为例 基础语法-标题 第一种方式,#后跟一个空格就是一级标题,##后跟一个空格就是二级标题。例如,# 一级标题,## 二级标题。三级标题、四级标题等语法格式以此类推,最多支持六级标题。 第二种方式,ctrl+数字可以表示几级标题,ctrl + 1 表示一级标 阅读全文
posted @ 2022-02-25 19:38 渺阴丶 阅读(73) 评论(0) 推荐(0)