A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© alee 中级黑马   /  2014-8-27 23:44  /  1122 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

线程死锁
死锁对 Java 程序来说,是很复杂的,也很难发现问题。当两个线程被阻塞,每个线程在等待另
一个线程时就发生死锁。但是,无论代码中发生死锁的概率有多小,一旦发生死锁,程序就死掉。
有一些设计方法能帮助避免死锁,包括始终按照预定义的顺序获取锁这一策略。
线程同步小结
1、线程同步的目的是为了保护多个线程反问一个资源时对资源的破坏。
2、 线程同步方法是通过锁来实现, 每个对象都有切仅有一个锁, 这个锁与一个特定的对象关联,
线程一旦获取了对象锁,其他访问该对象的线程就无法再访问该对象的其他同步方法。
3、对于静态同步方法,锁是针对这个类的,锁对象是该类的 Class 对象。静态和非静态方法的
锁互不干预。一个线程获得锁,当在一个同步方法中访问另外对象上的同步方法时,会获取这两
个对象锁。
4、对于同步,要时刻清醒在哪个对象上同步,这是关键。
5、编写线程安全的类,需要时刻注意对多个线程竞争访问资源的逻辑和安全做出正确的判断,
对“原子”操作做出分析,并保证原子操作期间别的线程无法访问竞争资源。
6、当多个线程等待一个对象锁时,没有获取到锁的线程将发生阻塞。
7、死锁是线程间相互等待锁锁造成的,在实际中发生的概率非常的小。真让你写个死锁程序,

不一定好使,呵呵。但是,一旦程序发生死锁,程序将死掉。

2 个回复

倒序浏览
不错不错。
回复 使用道具 举报
不错,不错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马