近期有一个业务需求,多台机器需要同时从Mysql一个表里查询数据并做后续业务逻辑,为了防止多台机器同时拿到一样的数据,每台机器需要在获取时锁住获取数据的数据段,保证多台机器不拿到相同的数据。我们Mysql的存储引擎是innodb,支持行锁。解决同时拿数据的方法有很多,为了更加简单,不增加其他表和服务...
分类:
数据库 时间:
2015-12-01 00:04:36
阅读次数:
223
在这篇随笔中,我们的主要关注点在 Key-Range Lock。Key-Range Lock有 S-S、S-U、I-N、X-X几种情况。我们一个一个来说,力求明白。遗憾的是,这里可能会比较冗长,那么死锁分析只好依次顺延了。Range S-S锁的获取规则MSDN 对 Range 锁的规则有部分描述,但...
分类:
数据库 时间:
2015-08-25 18:29:04
阅读次数:
209
在MySQL中,行级锁并不是直接锁记录,而是锁索引。索引分为主键索引和非主键索引两种,如果一条sql语句操作了主键索引,MySQL就会锁定这条主键索引;如果一条语句操作了非主键索引,MySQL会先锁定该非主键索引,再锁定相关的主键索引。在UPDATE、DELETE操作时,MySQL不仅锁定WHE.....
分类:
数据库 时间:
2015-07-16 00:45:39
阅读次数:
193
在这篇随笔中,我们的主要关注点在 Key-Range Lock。Key-Range Lock有 S-S、S-U、I-N、X-X几种情况。我们一个一个来说,力求明白。遗憾的是,这里可能会比较冗长,那么死锁分析只好依次顺延了。Range S-S锁的获取规则MSDN 对 Range 锁的规则有部分描述,但...
分类:
数据库 时间:
2015-05-08 17:49:24
阅读次数:
246
背景:
实现强占式camera service,当某些应用(如手电筒)在后台打开camera后,当cameraapp
open camera时可以强占被后台应用占有的camera.
注意,由于这样修改破坏了android原生的camera
service规则,有可能导致某些三方apk出现异常
问题:概率性死锁
分析:
关闭:JNI--》Camer...
分类:
其他好文 时间:
2015-04-27 21:49:03
阅读次数:
229
一 基础知识在分析之前,先上一张图:从上面可以看到,这个w3wp进程占用了376M内存,启动了54个线程。在使用windbg查看之前,看到的进程含有 *32 字样,意思是在64位机器上已32位方式运行w3wp进程。这个可以通过查看IIS Application Pool 的高级选项进行设置:好了,接...
分类:
Web程序 时间:
2015-01-06 17:50:36
阅读次数:
210
一 基础知识在分析之前,先上一张图:从上面可以看到,这个w3wp进程占用了376M内存,启动了54个线程。在使用windbg查看之前,看到的进程含有 *32 字样,意思是在64位机器上已32位方式运行w3wp进程。这个可以通过查看IIS Application Pool 的高级选项进行设置:好了,接...
分类:
Web程序 时间:
2014-12-30 20:31:39
阅读次数:
351
我们创建4个线程,与之前不同的是,同时使用了同步函数和同步代码快。看看结果如何class Mlpc implements Runnable{ private int ticket = 550; public boolean flag = true; Object obj = new...
分类:
编程语言 时间:
2014-12-08 12:03:01
阅读次数:
206
所谓的死锁,主要是由于进程B要访问进程A所在的资源,而进程A又由于种种原因,不释放掉其所占用的资源,所以数据库就会一直处于阻塞状态。四个必要条件:必要条件:互斥,一个资源,在同一时间点上,只能由一个进程访问。死锁分析:当任务TA在使用资源RA的时候,产生了未预知的问题,从而意外的停止了执行,但是还没...
分类:
数据库 时间:
2014-11-24 13:21:09
阅读次数:
297
在数据库中打开死锁监测可以收集到数据库发生的死锁情况。打开的方式有2种:1 打开1222监控 执行SQL语句:Dbcc traceon(1222,-1);然后在系统日志里查看死锁的信息。2 启动SQL Profiler(建议使用): 下面就是一个发生死锁的实例图:下面提供对这个死锁分析思路,如有不当...
分类:
数据库 时间:
2014-10-03 23:17:45
阅读次数:
422