摘要: 一、如何判断对象可以回收? 1. 引用计数法:只要一个对象被其他变量所引用,就让计数加一,引用两次就让计数变为2,取消引用就让计数减一,但是这种算法有严重的弊端,如果两个变量之间循环引用的话,他们永远无法被垃圾回收。 2,可达性分析:通过一系列被称为「GC Roots」的根对象作为起始节点集,从这些 阅读全文
posted @ 2023-01-28 19:40 wwwwwwwty 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 一、持久性 依靠的是redo log,重做日志,记录的是事务提交时数据也的物理修改,是用来实现事务的持久性。 该日志文件由两部分组成,重做日志缓冲,(redo log buffer) 和重做日志文件(redo log file),前者是在内存中,后者是在磁盘中,当事务提交之后会把所有修改信息都存到该 阅读全文
posted @ 2023-01-05 00:46 wwwwwwwty 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 基本概念 MVCC:全称Multi-Version Concurrency Control,多版本并发控制。指维护一个数据的多个版本,使得读写操作没有冲突,快照读为MySQL实现 MVCC提供了- -个非阻塞读功能。MVCC的具体实现,还需要依赖于数据库记录中的三个隐式字段、undo log日志、r 阅读全文
posted @ 2023-01-05 00:28 wwwwwwwty 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 一、insert调优 1、插入多条数据时最好批量插入 (但一般不超过一千条) 2、手动提交事务,多条语句一起提交 start transaction; insert into table values (),(),(); insert into table values (),(),(); inse 阅读全文
posted @ 2022-12-30 23:47 wwwwwwwty 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 重拾mysql,记点新知识 1、关于外键约束,项目中一直少用外键约束,是怕删除的时候删除不掉,原来是可以设置的,关于外键约束有四种更新行为 NO ACTION:当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许更新、删除。(与RESTRICT一致) RESTRICT:当在父 阅读全文
posted @ 2022-12-29 00:32 wwwwwwwty 阅读(36) 评论(0) 推荐(0) 编辑
摘要: AbstractQueuedSynchronizer 抽象的队列同步器 AQS是volatile+CAS机制实现的锁模板,保证了代码的同步性和可见性。AQS定义了一套多线程访问共享资源的同步器框架,封装了线程阻塞等待挂起,解锁其他线程的逻辑, AQS子类只需要根据状态变量,判断是否可获取锁,是否释放 阅读全文
posted @ 2022-12-27 10:41 wwwwwwwty 阅读(56) 评论(0) 推荐(0) 编辑
摘要: ReentrantReadWriteLock 读写锁 定义:一个资源能够被多个读线程访问,或者被一个写线程访问,但是不能同时存在读写线程,只有在读多写少的情况下,读写锁才有较高的性能体现。 缺点: 1、写锁饥饿问题,如果读锁特别多,写锁特别少,会导致写锁抢不到资源 2、锁降级 锁降级:如果一个线程持 阅读全文
posted @ 2022-12-27 00:22 wwwwwwwty 阅读(149) 评论(0) 推荐(0) 编辑
摘要: Future Future接口提供了异步并行计算的功能,可以为主线程开一个分支任务,专门为主线程处理耗时和费力的复杂任务。 (FutureTask)实现类满足三个特点,1,多线程 2,有返回 3,异步任务 Future(FutureTask) 优缺点 优点:future+线程池异步多线程任务配合,能 阅读全文
posted @ 2022-12-24 17:20 wwwwwwwty 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 三种锁的优缺点对比 偏向锁的几个特点: 1、撤销偏向需要将持锁线程升级为轻量级锁,这个过程中所有线程需要暂停(STW) 2、偏向锁的对象头会记录当前线程的id 3、访问对象的hashcode也会撤销偏向锁,因为hashcode存在对象头中,占用了储存当前偏向线程id的位置 4、如果对象被多个线程访问 阅读全文
posted @ 2022-12-24 17:19 wwwwwwwty 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 手写自旋锁 public class SpinLockDemo { AtomicReference<Thread> atomicReference = new AtomicReference<>(); public void lock(){ Thread thread = Thread.curren 阅读全文
posted @ 2022-12-21 20:18 wwwwwwwty 阅读(43) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示