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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

java中多线程里面的死锁是怎么造成的?如何解决这类问题?

12 个回复

倒序浏览
因为每个线程都能读写相同的共享数据。不同线程同时对同一共享资源同时访问,进而会导致死锁的产生。线程可以使用 synchronized 关键字来获得锁防止同时访问共享资源
回复 使用道具 举报
简单的解释死锁产生的原因,死锁主要产生在同步嵌套中。简言之:

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

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

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

回复 使用道具 举报
毕老师视频里讲的还是很好理解的,多看两边就清楚了
回复 使用道具 举报
朱冰18189949658 发表于 2014-8-17 00:37
因为每个线程都能读写相同的共享数据。不同线程同时对同一共享资源同时访问,进而会导致死锁的产生。线程可 ...

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

嗯,谢谢
回复 使用道具 举报
迦南 中级黑马 2014-8-21 23:04:44
8#
Mokill0911 发表于 2014-8-17 00:58
简单的解释死锁产生的原因,死锁主要产生在同步嵌套中。简言之:

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

嗯,谢谢
回复 使用道具 举报
迦南 中级黑马 2014-8-21 23:05:48
9#
Huberry 发表于 2014-8-17 01:07
毕老师视频里讲的还是很好理解的,多看两边就清楚了

嗯,谢谢
回复 使用道具 举报
Mokill0911 发表于 2014-8-17 00:58
简单的解释死锁产生的原因,死锁主要产生在同步嵌套中。简言之:

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

说的很好,学的挺不错的
回复 使用道具 举报
据说死锁就是相互套用造成的!
回复 使用道具 举报
死锁是因为锁不同造成了死锁,你把锁弄成一样的就可以了
回复 使用道具 举报
看评论,学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马