黑马程序员技术交流社区

标题: 死锁怎么造成的 [打印本页]

作者: 迦南    时间: 2014-8-16 23:44
标题: 死锁怎么造成的
java中多线程里面的死锁是怎么造成的?如何解决这类问题?
作者: 朱冰18189949658    时间: 2014-8-17 00:37
因为每个线程都能读写相同的共享数据。不同线程同时对同一共享资源同时访问,进而会导致死锁的产生。线程可以使用 synchronized 关键字来获得锁防止同时访问共享资源
作者: Mokill0911    时间: 2014-8-17 00:58
简单的解释死锁产生的原因,死锁主要产生在同步嵌套中。简言之:

同步中嵌套同步,但锁不同。

具体看这里,欢迎交流:)

http://blog.csdn.net/mokill0911/article/details/37906169


作者: Huberry    时间: 2014-8-17 01:07
毕老师视频里讲的还是很好理解的,多看两边就清楚了
作者: 迦南    时间: 2014-8-18 08:04
朱冰18189949658 发表于 2014-8-17 00:37
因为每个线程都能读写相同的共享数据。不同线程同时对同一共享资源同时访问,进而会导致死锁的产生。线程可 ...

谢谢你的解答
作者: 落幕繁华    时间: 2014-8-18 09:16
死锁是因为多线程访问共享资源,由于访问的顺序不当所造成的,通常是一个线程锁定了一个资源A,而又想去锁定资源B;在另一个线程中,锁定了资源B,而又想去锁定资源A以完成自身的操作,两个线程都想得到对方的资源,而不愿释放自己的资源,造成两个线程都在等待,而无法执行的情况。
作者: 迦南    时间: 2014-8-21 23:03
朱冰18189949658 发表于 2014-8-17 00:37
因为每个线程都能读写相同的共享数据。不同线程同时对同一共享资源同时访问,进而会导致死锁的产生。线程可 ...

嗯,谢谢
作者: 迦南    时间: 2014-8-21 23:04
Mokill0911 发表于 2014-8-17 00:58
简单的解释死锁产生的原因,死锁主要产生在同步嵌套中。简言之:

同步中嵌套同步,但锁不同。

嗯,谢谢
作者: 迦南    时间: 2014-8-21 23:05
Huberry 发表于 2014-8-17 01:07
毕老师视频里讲的还是很好理解的,多看两边就清楚了

嗯,谢谢
作者: ﹑淼    时间: 2014-8-21 23:27
Mokill0911 发表于 2014-8-17 00:58
简单的解释死锁产生的原因,死锁主要产生在同步嵌套中。简言之:

同步中嵌套同步,但锁不同。

说的很好,学的挺不错的
作者: 思维    时间: 2014-8-22 20:17
据说死锁就是相互套用造成的!
作者: 0小菜鸟0    时间: 2014-8-22 21:04
死锁是因为锁不同造成了死锁,你把锁弄成一样的就可以了
作者: 王责彬    时间: 2014-8-22 21:14
看评论,学习了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2