1、问题OutOfMemoryError:内存不足;内存泄漏线程死锁锁竞争(LockContention)java消耗过多的CPU2、java常用健康工具jps(javavirtualmachineprocessstatustool)监控jvm进程状态信息使用格式:jps[options][hostid] -m:输出传入main方法的参数 -l:显示main类或jar的完全限定名称 ..
分类:
编程语言 时间:
2015-12-02 12:43:24
阅读次数:
195
线程死锁产生的必要条件:(1)互斥条件:一个资源每次只能被一个进程使用。(2)请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。(3)不可剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。(4)循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。如何避免死锁,这点...
分类:
编程语言 时间:
2015-11-16 06:08:32
阅读次数:
183
GCD 确实好用 ,很强大,相比NSOpretion 无法提供 取消任务的功能。如此强大的工具用不好可能会出现线程死锁。 如下代码:- (void)viewDidLoad{ [super viewDidLoad]; NSLog(@"=================4"); dis...
分类:
编程语言 时间:
2015-11-09 20:58:27
阅读次数:
261
死锁:死锁产生的现场:当A进程P S2信号量而B进程P S1信号量时就会产生死锁,因为S2信号量需要B进程释放,而S1信号量需要A进程释放,因此两个进程都在等相互的资源,造成死锁。死锁产生的条件:互斥条件:进程要求对所分配的资源进行排它性控制,即在一段时间内某资源仅为一进程所占用。(信号量s1 s2...
分类:
编程语言 时间:
2015-11-05 16:34:44
阅读次数:
208
线程死锁的原因:同步中嵌套同步,但是锁却不同class Test implements Runnable{ private boolean flag; Test(boolean flag) { this.flag = flag; } public void...
分类:
编程语言 时间:
2015-10-24 00:14:01
阅读次数:
222
死锁是两个甚至多个线程被永久阻塞时的一种运行局面,这种局面的生成伴随着至少两个线程和两个或者多个资源。 死锁例子:public class ThreadDeadlock { public static void main(String[] args) throws Interrupte...
分类:
编程语言 时间:
2015-10-21 22:36:52
阅读次数:
439
前言死锁单独写一篇文章是因为这是一个很严重的、必须要引起重视的问题。这不是夸大死锁的风险,尽管锁被持有的时间通常很短,但是作为商业产品的应用程序每天可能要执行数十亿次获取锁->释放锁的操作,只要在这数十亿次操作中只要有一次发生了错误,就可能导致程序中发生死锁,并且即使通过压力测试也不可能找出所有潜在...
分类:
编程语言 时间:
2015-10-03 19:23:14
阅读次数:
264
1 public class Main{ 2 3 /*模拟死锁 4 * 5 * PersonA要拿到B才把A给B 6 * PersonB要拿到A才把B给A 7 * 8 * 9 * 10 */11 12 ...
分类:
编程语言 时间:
2015-10-03 13:10:25
阅读次数:
155
运行的结果:死锁的原因:因为线程1,2要同时使用o1,o2两个资源,但是线程1抱着o1的锁不放,等待o2的锁被被释放; 而线程2抱着o2的锁不放,等待o1的锁被释放。两者都想要对方的被锁住的资源,却不放自己所有的锁,最终两人都无法执行下去,形成死锁
分类:
编程语言 时间:
2015-09-09 11:14:53
阅读次数:
141