Loading

摘要: java实现两个线程交替打印0~100 public class jk { static volatile int num=0; static Object lock=new Object(); public static void main(String[] args) { Runnable task1 = new Task1(); R 阅读全文
posted @ 2023-09-01 17:39 花园SON 阅读(235) 评论(0) 推荐(0) 编辑
摘要: InnoDB RR隔离级别下解决幻读 InnoDB RR隔离级别下解决幻读 演示 A B begin; begin; select *from award where id>2; insert into award (id) values(6); commit; select *from award where id>2; commit 阅读全文
posted @ 2023-09-01 17:37 花园SON 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 单例模式 单例模式 饿汉式,在类初始化时就创建好了单例对象 public class Design { private Design(){ System.out.println("私有方法调用"); } private static final Design singleton1= new Design(); 阅读全文
posted @ 2023-09-01 17:37 花园SON 阅读(3) 评论(0) 推荐(0) 编辑
摘要: HashMap的寻址算法 HashMap的寻址算法 阅读全文
posted @ 2023-09-01 17:36 花园SON 阅读(2) 评论(0) 推荐(0) 编辑
摘要: CAP理论 阅读全文
posted @ 2023-09-01 17:36 花园SON 阅读(2) 评论(0) 推荐(0) 编辑
摘要: Spring Bean 的生命周期 阅读全文
posted @ 2023-09-01 17:36 花园SON 阅读(2) 评论(0) 推荐(0) 编辑
摘要: Redis分布式锁 基于Redis的分布式锁一般有两个SETNX和Redission SETNX 获取锁:通过setNx命令 释放锁:DEL key 命令 手动释放,或者超时释放,给锁添加一个超时时间;(超时时间的设置需要考量,不能太长) 在极端情况:业务阻塞导致锁提前释放了;其他线程一上来,业务没 阅读全文
posted @ 2023-09-01 17:35 花园SON 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 缓存同步策略之同步双写 阅读全文
posted @ 2023-09-01 17:35 花园SON 阅读(3) 评论(0) 推荐(0) 编辑
摘要: MySQL死锁 什么是死锁 死锁是并发系统中常见的问题,一般表现为A,B同时持有对方需要的资源并上锁,A,B都在等待对方释放锁以获取对方手里的资源,如此便产生了死锁。同样也会出现在数据库MySQL的并发读写请求场景中。当两个及以上的事务,双方都在等待对方释放已经持有的锁或因为加锁顺序不一致造成循环等 阅读全文
posted @ 2023-09-01 17:34 花园SON 阅读(9) 评论(0) 推荐(0) 编辑
摘要: ThreadLocal ThreadLocal是在多线程编程的环境下,为每个线程创建一个单独的线程变量,互不影响。避免了多个线程同时操作共享变量时产生冲突而带来的一些问题。相比于加锁的操作,体现一种以空间换时间的思想 ThreadLocal的结构 在早期的版本中,ThreadLocal的实现是每个T 阅读全文
posted @ 2023-09-01 17:34 花园SON 阅读(3) 评论(0) 推荐(0) 编辑