本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等这篇文章主要记录,造成查询数量不大的情况下,造成查询缓慢的原因,以及相应的解决方法。环境说明:MySQL版本5.7.27隔离级别:RR锁等待造成查询速度很慢MDL锁如开启如下事务:SessionA持有表tMDL写锁。SessionB需要MDL读锁。这时读写锁互斥,SessionB被阻塞。flush阻塞flush操作一般来说很快
分类:
其他好文 时间:
2020-07-16 12:14:03
阅读次数:
99
查看是否有锁现象 ## 1. 看有没有锁等待 SHOW STATUS LIKE 'innodb_row_lock%'; ## 2. 查看哪个事务在等待(被阻塞了) USE information_schema SELECT * FROM information_schema.INNODB_TRX W ...
分类:
数据库 时间:
2020-07-10 20:42:20
阅读次数:
87
FutureTask详解 简介 FutureTask为Future的实现类. 用以获取任务执行结果(get)和取消任务(cancel). 若任务未完成,则获取任务结果时会被阻塞. 若任务执行完成后,任务不能被重启或取消. 可用作一个任务提交到线程中执行. 线程安全由CAS保证. FutureTask ...
分类:
其他好文 时间:
2020-06-30 22:26:35
阅读次数:
78
使用共享变量的方式 在这种方式中,之所以引入共享变量,是因为该变量可以被多个执行相同任务的 线程用来作为是否中断的信号,通知中断线程的执行。 使用 interrupt 方法终止线程 如果一个线程由于等待某些事件的发生而被阻塞,又该怎样停止该线程呢?这种 情况经常会发生,比如当一个线程由于需要等候键盘 ...
分类:
编程语言 时间:
2020-06-21 13:45:51
阅读次数:
61
一、ReentrantLock原理 ReentrantLock是一个可重入的独占锁,同时只能有一个线程可以获取该锁,其他获取该锁的线程会被阻塞而放入该锁的AQS阻塞队列里面。ReentrantLock最终是使用AQS来实现的,并且根据参数来决定其内部是一个公平锁还是非公平锁,默认是非公平锁。 pub ...
分类:
其他好文 时间:
2020-06-18 12:49:04
阅读次数:
63
进程的等待状态 如果进程不在执行的话,那么它在等待一些事件,内核分了很多的等待状态 这些状态通常由进程的描述符队列来实现的 ,每个队列可能悬空,来对应一组等待特定的事件的进程。 内核的可重入 几个进程可以同时在内核态执行,在单处理器上只有一个进程真正的运行,其他都是被阻塞的状态,或者处于一个低优先级 ...
分类:
其他好文 时间:
2020-06-17 23:35:50
阅读次数:
72
参考:https://www.cnblogs.com/firstdream/p/8334149.html Java中同一个类中不同的synchronized方法是否可以并发执行 ?? 参考:https://www.jianshu.com/p/f23a90a79b3a ...
分类:
编程语言 时间:
2020-06-15 17:26:13
阅读次数:
71
iOS中解决NSTimer循环引用问题 NSTimer使用不当就会造成内存泄漏,比如常见的使用方法: //定义 @property (nonatomic, strong) NSTimer *timer; //实现 self.timer = [NSTimer scheduledTimerWithTim ...
分类:
移动开发 时间:
2020-06-15 14:20:41
阅读次数:
99
CyclicBarrier 的字面意思是可循环使用(Cyclic)的屏障(Barrier)。它要做的事情是,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续工作。 CyclicBarrier 默认的构造方法是 CyclicBar ...
分类:
其他好文 时间:
2020-06-10 13:22:17
阅读次数:
65
前言 Java 线程通信是将多个独立的线程个体进行关联处理,使得线程与线程之间能进行相互通信。比如线程 A 修改了对象的值,然后通知给线程 B,使线程 B 能够知道线程 A 修改的值,这就是线程通信。 wait/notify 机制 一个线程调用 Object 的 wait() 方法,使其线程被阻塞; ...
分类:
编程语言 时间:
2020-06-07 01:00:59
阅读次数:
75