了解事务和锁事务:保持逻辑数据一致性与可恢复性,必不可少的利器。锁:多用户访问同一数据库资源时,对访问的先后次序权限管理的一种机制,没有他事务或许将会一塌糊涂,不能保证数据的安全正确读写。死锁:是数据库性能的重量级杀手之一,而死锁却是不同事务之间抢占数据资源造成的。不懂的听上去,挺神奇的,懂的感觉我...
分类:
数据库 时间:
2015-04-22 13:41:37
阅读次数:
169
线程死亡:线程会以如下3种方式结束,结束后就处于死亡状态。1、run()或call()方法执行完成,线程正常结束。2、线程抛出一个未捕获的Exception或Error3、直接调用该线程的stop方法结束该线程---该方法容易导致死锁,通常不推荐使用。为了测试某个线程是否已经死亡,可以调用线程对象i...
分类:
编程语言 时间:
2015-04-21 20:17:51
阅读次数:
168
线程饥饿死锁
《Java并发编程实践》中对线程饥饿死锁的解释是这样的:在使用线程池执行任务时,如果任务依赖于其他任务,那么就可能产生死锁问题。在单线程的Executor中,若果一个任务将另一个任务提交到同一个Executor,并且等待这个被提交的任务的结果,那么这必定会导致死锁。第一个任务在工作队列中,并等待第二个任务的结果;而第二个任务则处于等待队列中,等待第一个任务执行完成后被执行...
分类:
编程语言 时间:
2015-04-21 14:40:38
阅读次数:
151
据说再高的高手在写多线程程序的时候都难确保不会产生死锁,死锁的调试也就成为一个比较常见的问题,假设有下面这样一个问题: 一个正在生产环境下运行的进程死锁了,或者你只是在跑一个程序,并没有在调试器里面打开它,然后发现没有响应,日志 输出也停止了。由于你是一个有经验的程序员,会想到“我刚刚加上了新的锁....
分类:
编程语言 时间:
2015-04-20 14:35:42
阅读次数:
231
1. 产生死锁的原因主要是:(1) 因为系统资源不足。(2) 进程运行推进的顺序不合适。(3) 资源分配不当等。2. 线程死锁产生的必要条件:(1)互斥条件:一个资源每次只能被一个进程使用。(资源固有属性,无法破坏)(2)请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。(一次性将...
分类:
编程语言 时间:
2015-04-20 00:09:40
阅读次数:
189
来自:http://blog.163.com/yanenshun@126/blog/static/128388169200982444858590/?fromdm&fromSearch&isFromSearchEngine=yes进程死锁及解决办法一、要点提示(1)掌握死锁的概念和产生死锁的根本原因...
分类:
系统相关 时间:
2015-04-19 13:09:55
阅读次数:
178
转自:http://leowzy.iteye.com/blog/740859Java线程死锁如何避免这一悲剧 Java线程死锁需要如何解决,这个问题一直在我们不断的使用中需要只有不断的关键。不幸的是,使用上锁会带来其他问题。让我们来看一些常见问题以及相应的解决方法: Java线程死锁 Java线.....
分类:
编程语言 时间:
2015-04-19 13:06:15
阅读次数:
125
死锁在线程间共享多个资源的时候,如果两个线程分别占有一部分资源并且同时等待对方的资源,就会造成死锁。尽管死锁很少发生,但一旦发生就会造成应用的停止响应。下面看一个死锁的例子:按 Ctrl+C 复制代码按 Ctrl+C 复制代码执行结果:Thread-1 got resAThread-1 got re...
分类:
编程语言 时间:
2015-04-17 20:10:58
阅读次数:
164
平时在使用C# 5.0中的await and async关键字的时候总是没注意,直到今天在调试一个ASP.NET项目时,发现在调用一个声明为async的方法后,程序老是莫名其妙的被卡住,就算声明为async的方法中的Task任务执行完毕后,外部方法的await调用还是阻塞着,后来查到了下面这篇文章,...
初次接触死锁的概念是大学的一门课程《操作系统原理》中描述的“哲学家进餐”问题。操作系统中,由于各个进程共享系统资源而可能出现死锁问题。同样java多线程环境下,也存在资源共享导致的死锁问题。当一组java线程发生死锁时,程序有可能就此阻塞,而无法正常结束。Java应用程序中,我们使用加锁机制来确保线程的安全,但是如果过度地使用加锁,可能导致锁顺序死锁问题。
整理《java并发编程实...
分类:
编程语言 时间:
2015-04-17 11:33:25
阅读次数:
172