package hpu.acm.lzl.demos;
/**
* 模拟一个死锁的环境。
* 死锁就是用synchronized实现的。
* 一个线程使用synchronized 锁定一个方法之后 等待第二个线程释放资源完成第二个锁的操作。
* 另一个线程使用synchronized 锁定一个方法后 等待第一个线程释放资源完成第二个锁。
* 因此产生了 死锁
* @aut...
分类:
编程语言 时间:
2015-05-19 19:08:55
阅读次数:
142
vi /usr/local/killmysqlprocess.sh#!/bin/bash#*/1 * * * * /usr/local/src/killmysqlprocess.shbackdir="/usr/local/logs/"logfile="cms_mysql_killprocess_$(...
分类:
数据库 时间:
2015-05-19 10:09:08
阅读次数:
174
其实好久以前就看过这个文章,以及类似的很多篇文章。最近在和一个新同事的交流中发现原来对async的死锁理解不是很透彻,正好最近时间比较充裕就再当一回搬运工。本文假定你对.NET Framework 4.5 的异步编程有基本的了解,相关的建议你能够在Stack Overflow, MSDN 以及asy...
分类:
其他好文 时间:
2015-05-18 22:39:58
阅读次数:
160
在一个update和insert操作频繁的表中,少量数据测试的时候运行良好,在实际运营中,因数据量比较大(21万条记录),会出现死锁现象,用show processlist查看,可以看到一个update语句状态是Locked,一个delete语句状态是Sending data。查看了一下参考手册,把锁定相关的资料整理下来,以便自己记录和追踪该问题的解决情况:
MySQL 5.1支持对MyIS...
分类:
数据库 时间:
2015-05-18 18:52:50
阅读次数:
154
比较常见的死锁场景,并发批量update时的一个场景:update cross_marketingset gmtModified = NOW(),pageview = pageview+ #extpageview#WHERE marketingId=#marketingId#第一次调用时,marke...
分类:
数据库 时间:
2015-05-17 21:46:10
阅读次数:
213
内容:一个简单的死锁例子,大概的思路:两个线程A和B,两把锁X和Y,现在A先拿到锁X,然后sleep()一段时间,我们知道sleep()是不会释放锁资源的。然后如果这段时间线程B拿到锁Y,也sleep()一段时间的话,那么等到两个线程都醒过来的话,那么将互相等待对方释放锁资源而僵持下去,陷入死锁。flag的作用就是让A和B获得不同的锁。
public class TestDeadLock {
...
分类:
编程语言 时间:
2015-05-16 20:37:24
阅读次数:
113
在实际编程中,要尽量避免死锁情况的出现,但是有些面试中故意让你写一个死锁的程序,这似乎也不太简单(有些公司会出这样的面试题),下面讲解一个简单的死锁例子。
代码说明:
第一步:
当DeadLock的线程对象td1的属性flag为1时,第一个线程先锁定资源O1,睡眠500毫秒,然后尝试锁定资源O2(假如没有被锁定的话);
第二步:而第一个线程在睡眠的时候,第二个线程对象td2启动了,其属性f...
分类:
编程语言 时间:
2015-05-16 10:31:27
阅读次数:
138
需要避免的与多任务处理有关的特殊错误类型是死锁(deadlock)。死锁发生在当两个线程对一对同步对象有循环依赖关系时。例如,假定一个线程进入了对象X的管程而另一个线程进入了对象Y的管程。如果X的线程试图调用Y的同步方法,它将像预料的一样被锁定。而Y的线程同样希望调用X的一些同步方法,线程永远等待,...
分类:
编程语言 时间:
2015-05-16 09:03:30
阅读次数:
129
前言:
本章主要介绍一下SQL Server Profiler(事件探查器),通过探查器,来分析语句运行的效果。
--SQL Server Profiler
['pr??fa?l?(r)]
事件探查器
SQL Profiler是一个图形界面和一组系统存储过程,其作用如下:
-图形化监视SQL Server查询;
-在后台收集查询信息;
-分析性能;
-诊断像死锁之类的问题;
-调试T-SQL语句;
-模拟重放SQL Server活动;
-也可以使用SQL Profiler捕捉在S...
分类:
数据库 时间:
2015-05-15 17:52:02
阅读次数:
190
原文链接 作者:Jakob
Jenkov 译者:刘晓日 校对:丁一
重入锁死与java中的死锁非常相似。锁和读写锁两篇文章中都有涉及到重入锁死的问题。
当一个线程重新获取锁,读写锁或其他不可重入的同步器时,就可能发生重入锁死。可重入的意思是线程可以重复获得它已经持有的锁。Java的synchronized块是可重入的。因此下面的代码是没问题的:
(译者注:这里提到的锁都是指的...
分类:
编程语言 时间:
2015-05-14 18:51:39
阅读次数:
170