线程同步、线程死锁
在上一篇文章中,有一个模拟售卖火车票系统,在卖车票的程序代码中,极有可能碰到一种意外,就是同一张票号被打印两次多次,也可能出现打印出0甚至负数的票号。具体表现为:假设tickets的值为1的时候,线程1刚执行完if(tickets>0)这行代码,正准备执行下面的代码,就在这时,操作系统将CPU切换到了线程2上执行,此时tickets的值仍为1,线程2执行完上面两行代码...
分类:
编程语言 时间:
2015-01-26 00:08:03
阅读次数:
326
第三章:I/O。 软件必须处理的问题:I/O硬件,I/O设备和I/O控制器的关系。 I/O软件的四个层次:中断例程,设备驱动程序,设备无关I/O软件,以及在用户空间运行的I/O库和假脱机(?)。 死锁概念:发生在一组进程都拥有对某些资源的互斥存取权,并且每个进程还要求仍属于该组中另一个进程...
分类:
其他好文 时间:
2015-01-25 12:18:50
阅读次数:
183
SQL中如何检查死锁 编写人:CC阿爸 2014-6-15 在日常SQL数据库的操作中,SQL偶尔会出现表被死锁的问题。比如: 在执行事务时,突然中止事务。系统肯定会锁表。 大批量数据操作时,由于网络 机器性能等相关因素,都会偶尔引起死锁。 这也是SQL没有oracle强大的...
分类:
数据库 时间:
2015-01-24 23:58:51
阅读次数:
306
最近一段时间,我们的生产系统升级频繁出现故障,具体故障现象是启动后10来分钟就出现交易缓慢,处理线程耗尽等现象,并且故障发生的频率蛮高的。经过详细的诊断和排查,终于发现了问题,是groovy在osgi中运行会出现classloader死锁,最后我们也解决了这个问题。 如果单靠通过查看代码是很...
分类:
编程语言 时间:
2015-01-23 18:17:38
阅读次数:
202
1. 一个特殊构造的程序考虑下面这个专门为说明多线程中的死锁现象而构造的程序:import java.util.LinkedList;public class Stack { public static void main(String[] args) { final Stack...
分类:
编程语言 时间:
2015-01-23 12:38:32
阅读次数:
251
最近2个月没做什么新项目 完全是对于旧的系统进行性能优化 避免超时 死锁 数据处理能力不够等常见的性能问题这里不从架构方面出发 毕竟动大手脚成本比较高 那么我们以实例为前提 从细节开始优化角度一.业务逻辑优化二.DB优化三.数据处理优化四.锁与性能五.细节业务逻辑优化这一条不具有普遍性 不同的业务不...
分类:
其他好文 时间:
2015-01-22 20:08:44
阅读次数:
206
最近在整理线上性能时,发现一台线上DB出现两个insert产生的死锁问题------------------------LATEST DETECTED DEADLOCK------------------------150119 10:55:08*** (1) TRANSACTION:TRANSAC...
分类:
数据库 时间:
2015-01-22 20:01:42
阅读次数:
437
一、编程序模拟银行家算法
1)对用银行家算法来避免死锁的方法有较深入的了解,给出系统的初始状态,模拟避免死锁的动态过程。
2)银行家算法中的数据结构
(1)可利用资源向量Available。这是一个含有m个元素的数组,其中的每一个元素代表一类可利用的资源数目,其初始值是系统中所配置的该类全部可用资源的数目,其数值随该类资源的分配和回收而动态地改变。Available[j]=K,则表示系统中现...
分类:
编程语言 时间:
2015-01-21 09:04:06
阅读次数:
212
产生死锁
在操作系统中,我们可能接触过两个进程争抢资源,互不相让,然后产生了死锁,这时候,我们可以用银行家算法来分配资源。下面,我们先模拟产生死锁:
#region 试图产生死锁的代码
// static void T1(Program p)
//{
// //主线程占有了mainRes...
分类:
其他好文 时间:
2015-01-20 20:30:48
阅读次数:
143
最近项目中出现了Tomcat占用CPU100%的情况,原以为是代码中出现死循环,后台使用jstack做了dump,发现是系统中不合理使用HashMap导致出现了死循环(注意不是死锁)。 产生这个死循环的根源在于对一个未保护的共享变量 — 一个"HashMap"数据结构的操作。当在所有操作的方法上.....
分类:
编程语言 时间:
2015-01-20 15:32:20
阅读次数:
141