摘要:
参考:https://blog.csdn.net/a745233700/article/details/122402303 一、2PC: 2PC,两阶段提交,将事务的提交过程分为资源准备和资源提交两个阶段,并且由事务协调者来协调所有事务参与者,如果准备阶段所有事务参与者都预留资源成功,则进行第二阶段 阅读全文
摘要:
what 实例化一个完整的bean主要分两步,实例化(调用构造器在堆内存中分配一块内存)和初始化(给属性赋值); ClassA中有ClassB属性,ClassB中有ClassA属性,导致在bean初始化填充属性时,导致循环依赖 when 在bean生成周期的属性填充阶段(populateBean) 阅读全文
摘要:
用户线程:主线程的子线程,当主线程结束时,用户线程也会结束。 守护线程:一种特殊的线程,它是在后台运行的,当所有用户线程结束时,守护线程也会随之结束。例如gc线程 public class ThreadDemo { public static void main(String[] args) { T 阅读全文
摘要:
ThreadLocal、InheritableThreadLocal、TransmittableThreadLocal的使用场景和实现原理 类型 使用场景 实现原理 ThreadLocal 解决多线程共享变量问题,为每个线程创建一个变量副本 使用ThreadLocalMap<ThreadLocal, 阅读全文
摘要:
https://blog.csdn.net/qq_34375473/article/details/121071860 spring框架中数据库的默认隔离级别和传播行为 参照Transactional注解: Innodb 引擎在repeatable read隔离级别下,如何解决部分幻读的问题 快照读 阅读全文
摘要:
一. grep grep命令是一个Linux文本处理工具,它与egrep命令属于同一系列,这些命令都是用于对文件和文本执行重复搜索任务的工具。我们可以通过grep命令指定特定搜索条件来搜索文件及其内容以获取有用的信息。grep是全局搜索正则表达式并打印出匹配的行,其抓取数据是贪婪模式,即不会漏掉过滤 阅读全文
摘要:
get ab -n 200 -c 20 "http://test.com/100075?taskId=123&name=xiaozhao" 注意:当url中包含requestParam时,需要有双引号,否则参数丢失 post ab -n 10 -c 2 -p post.txt -T "applica 阅读全文
摘要:
【排查步骤】 1.使用:jps -vl,找到java进程的PID和启动时设置的jvm参数 2.使用:jinfo [PID] 命令查询jvm的配置参数,检查内存配置是否合理;如果解决不了继续第3步 3.使用:jmap -histo:live PID 命令查看哪个类型的对象占用了大量的内存 或使用:jm 阅读全文
摘要:
1.执行死锁代码 public class DeadLockTest { public static void main(String[] args) throws InterruptedException { //a线程持有a锁,并尝试获取b锁;b线程持有b锁,并尝试获取a锁 Object loc 阅读全文
摘要:
第一步:top,找到使cpu飙高的进程PID 第二步:top -Hp [进程PID] ,查看线程资源使用情况,假设下面是96009进程中各个线程的资源使用情况 第三步: printf "%x\n" [线程PID,这里是30309],将线程PID转换为16进制 第四步:jstack -l 96009 阅读全文