- 博客(17)
- 收藏
- 关注
原创 123123123线程池
param numberOfThreads 线程池中线程的数量。@param maxNumberOfTasks 队列最大任务数量。@throws Exception 如果线程池已停止,抛出异常。@param task 需要执行的任务。// 从任务队列中取出并执行任务。// 初始化并启动所有工作线程。// 当线程未被停止时循环执行。// 异常处理逻辑(简化处理)// 线程池的工作线程数组。// 线程池是否停止的标志。
2024-05-26 18:42:09
225
原创 【无标题】
分布式ID的实现:1.mysql 依赖自增字段 replace into后在执行SELECT LAST_INSERT_ID();优点:实现简单,id有序递增缺点:生成id有序(安全性),大量访问性能差2.redis incr优点:实现简单,id有序递增缺点(安全性)3.算法1:jdk自带uuid,只需一行代码,但占用空间多且无序4.算法2:基于雪花算法(依赖时间,若服务器时间回拨,可能重复)改良版(团leaf),有序递增,生成速度快redisson引入watch dog 。每隔十秒,判
2024-05-06 17:35:39
96
2
原创 redis13123124
rdb,aof故障恢复时,需要逐行执行命令,比较缓慢。通过cow写时复制,如果子进程写rdb期间主进程更改了键值对,会拷贝一份副本给子进程。惰性更新(查询时再查看过期字典,过期则删除,节约cpu资源,浪费空间)、定期检查(从过期字典中抽查20个,若过期数量大于5(1/4),再次抽查)aof,一次复制,两个日志,aof日志缓冲,aof重写日志缓冲。生成阶段:若为key未过期,会写入aof中,若过期了,会追加一条del命令。加载阶段:主,会进行过期检查,删除过期键。持久化过程中对过期值的处理策略。
2024-04-21 01:36:53
229
1
原创 其他154657489456
3 base,基本可用、软状态、最终一致性,可以理解为ap方案的补充,当保证可用性时,可以容忍短暂的数据不一致,但要保证数据的最终一致。核心思想:即使无法保证系统的强一致性,也要根据各自业务的特点,保证系统整体的最终一致性。ba:可以允许短暂的接口响应时间提高,非核心功能不可用。s:允许存在中间状态:节点间数据同步存在延迟。
2024-04-18 13:09:47
192
1
原创 mysql12323145325
如果只使用binlog,在崩溃恢复时,虽然可以知道哪些SQL语句被执行过,但由于binlog是逻辑日志,它无法提供足够的信息来快速恢复数据到最后一次已知的状态,特别是在数据量大的情况下,重新执行所有SQL语句的效率非常低下。因此,在崩溃恢复的场景下,redo log和binlog通常是结合使用的,以利用redo log的快速物理恢复能力和binlog的逻辑恢复及数据复制能力。:虽然redo log能够确保事务的持久性,即在崩溃后能够恢复数据的物理状态,但它无法提供足够的信息来支持数据的复制和逻辑恢复。
2024-04-15 16:38:37
173
1
原创 `ON DUPLICATE KEY UPDATE`与`REPLACE`性能差异
与REPLACE在处理数据库中已存在的键值时有不同的工作机制,这导致了它们在性能上的差异。REPLACE。
2024-04-15 11:16:05
633
1
原创 网络12312
七层结构1.应用层2.表示层。编解码,亚索3.会话层(session层)应用程序之间交互4.传输层(tcp、udp)5.网络层6.物理链路7.物理层对称加密的密钥是非对称加密过的HTTPS 是运行在 SSL/TLS 之上的 HTTP 协议,SSL/TLS 运行在 TCP 之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。所以说,HTTP 安全性没有 HTTPS 高,但是 HTTPS 比 HTTP 耗费更多服务器资源。http2和1.1的
2024-04-12 18:19:17
134
原创 通过阅读ArrayList源码分析ArrayList的扩容机制
这里阅读的是JDK8的源码,使用无参构造函数的话是创建一个空数组,第一次调用add方法是才生成一个大小为10的数组。执行add方法,会先调用ensureCapacityInternal(size+1)方法,执行完毕后elemData[size++]=e,返回布尔类型。ensureCapacityInternal()方法内部是一个嵌套方法,外层是调用ensureEplicitCapacity(),它的参数为calculateCapacity(),calculateCapacity的作用是检测此时
2021-04-10 20:42:14
160
1
原创 九大排序算法(纯手打,完结!)
排序常见的排序列表测试代码及其他封装算法 //Test public static void main(String[] args) { int[] testArry = {2, 3, 5, 1, 6, 4, 7, 9, 10, 6, 25, 48, 59, 63, 55, 88, 46, 98, 37, 12, 16, 17, 23, 34}; int[] rightResult = {1, 2, 3, 4, 5, 6, 6, 7, 9, 10, 12,
2021-03-25 21:15:44
136
3
原创 SpringMVC
文章目录SpringMVCSpringMVC的核心组件SpringMVC工作流程SpringMVC的注解@RequestMapping相关参数 value,method,params@ControllerRestful风格的URL传统的通过jsp+servlet开发方式映射cookie遇到的问题使用javaBean绑定参数转发与重定向数据绑定基本数据类型包装类数组ListJSON数据格式SpringMVC模型数据解析绑定到Request中mapModelAndViewHttpServletRequestMo
2021-03-25 19:58:36
67
原创 个人使用IDEA过程中一些好用的快捷键
文章目录查询各种类等等等,阅读源码必备: Ctrl + Shift + A快速显示类中所包含的变量、方法等(读源码必备):Ctrl+F12返回上一级源码 c+a+左右方向键显示一个类中所包含的构造器:Ctrl+P自动整理代码格式(彳亍!):Ctrl + Alt + L包住代码块: Ctrl+Alt+s复制当前行 Ctrl + D快速生成文本注释 Ctrl + Shift + /快速生成单行注释 Ctrl + /Alt + Insert快速生成构造器、get,set函数等代码块移动 ALT+SHIFT+方向键
2021-03-18 11:23:26
93
原创 多线程
文章目录多线程1.程序、进程、线程区分:2.jvm内存结构3.一个java程序最少有3个线程:mian()主线程、gc()垃圾回收线程、异常处理线程。4.并行与并发(理解就好)5.创建多线程的方式(4种)**方式一:继承Thread类****方式二:通过实现Runnable接口的类**方式三:实现callable接口——>JDK5.0新增面试题:如何理解Callable比Runnable强大方式四:使用线程池使用线程池的好处:线程管理的方式:6.Thread中常用的方法:7.线程的分类8.线程的生命周
2021-02-03 13:35:40
94
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人