表总体上分为三种: 1、表锁 Myisam 开销小,并发低,加锁快,不会出现死锁问题;锁粒度大,发生锁冲突的概率最高。 2、行锁 innodb 开销大,并发高,加锁慢,会出现死锁问题;锁粒度小,发生锁冲突的概率最低。 3、页面锁 开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之 ...
分类:
数据库 时间:
2019-07-09 16:46:57
阅读次数:
134
1.jps 查看jvm中运行的进程(获取对应pid) 参数:默认-V(大写) -v: 列出jvm启动参数。 2.jstack pid 查看某个Java进程内的线程堆栈信息,,可用于线程死锁问题排查 3.jinfo pid 查看某个java进程的jvm参数信息等 jinfo -flags pid 查看 ...
分类:
其他好文 时间:
2019-06-30 00:22:31
阅读次数:
115
1.计算机的世界 线程: 线程运行步骤:就绪、等待、运行 多线程并发问题 加锁、死锁问题,按照资源顺序申请锁 TCP/IP 不可靠通道进行可靠性传输 TCP的三次握手和四次挥手 滑动窗口协议 CPU CPU比内存快100倍,比硬盘快百万倍。 寄存器、程序计算器 局部性原理 进程 批处理系统 进程记录 ...
分类:
其他好文 时间:
2019-06-25 00:20:17
阅读次数:
109
复习1.JoinableQueue--可以被join的队列2.多线程3线程的使用方法与进程一模一样3.1守护线程3.2线程安全问题3.3解决方案3.3.1互斥锁mutex3.3.2递归锁Rlock3.3.3信号量semaphore3.3.4死锁问题详解:1.JoinableQueue--可以被joi ...
分类:
编程语言 时间:
2019-06-05 23:55:00
阅读次数:
256
一、原理 1:利用redis原子性解决并发问题 2:利用redis集群署解决分布式部署问题 3:利用redis性能快解决时间消耗问题 4:利用redis过期时间解决死锁问题 5:利用rediskey唯一性解决互斥问题 问题:超时时间存在误差 二、基础方法 2.1:RedisManager 中重构Se ...
分类:
其他好文 时间:
2019-05-20 17:15:25
阅读次数:
106
以前接触到的数据库死锁,都是批量更新时加锁顺序不一致而导致的死锁,但是上周却遇到了一个很难理解的死锁。借着这个机会又重新学习了一下mysql的死锁知识以及常见的死锁场景。在多方调研以及和同事们的讨论下终于发现了这个死锁问题的成因,收获颇多。 ...
分类:
数据库 时间:
2019-05-17 15:22:18
阅读次数:
132
以前接触到的数据库死锁,都是批量更新时加锁顺序不一致而导致的死锁,但是上周却遇到了一个很难理解的死锁。借着这个机会又重新学习了一下mysql的死锁知识以及常见的死锁场景。在多方调研以及和同事们的讨论下终于发现了这个死锁问题的成因,收获颇多。虽然是后端程序员,我们不需要像DBA一样深入地去分析与锁相关的源码,但是如果我们能够掌握基本的死锁排查方法,对我们的日常开发还是大有裨益的。
分类:
数据库 时间:
2019-05-07 22:51:25
阅读次数:
163
https://www.jianshu.com/p/45626f4e0fc1 https://www.zhihu.com/question/37601861 ...
分类:
编程语言 时间:
2019-05-05 18:09:32
阅读次数:
141
1.系统要通过严格的ACID测试,ACID表示原子性/一致性/隔离性/持久性原子性:一个事务必须被视为一个不可分割的最小工作单元一致性:数据库总是从一个一致性的状态转换到另外一个一致性的状态隔离性:通常来说一个事务所做的修改在最终提交以前对其他事务是不可见的持久性:一旦事务提交,则其所做的修改就会永 ...
分类:
数据库 时间:
2019-04-08 13:17:02
阅读次数:
147
问题现场 在多线程环境下使用HttpClient组件对某个HTTP服务发起请求,运行一段时间之后发现客户端主机CPU利用率呈现出下降趋势,而不是一个稳定的状态。 而且,从程序日志中判断有线程处于夯住的状态,应该是被阻塞了。 问题排查 一开始找不到原因,怀疑是多线程并发导致的死锁问题,但是通过代码审查 ...
分类:
编程语言 时间:
2019-03-28 00:31:24
阅读次数:
655