黑马程序员技术交流社区

标题: 关于线程的死锁问题 [打印本页]

作者: 如初见    时间: 2015-7-8 23:16
标题: 关于线程的死锁问题
这个线程死锁,有点理解不上去。谁能用通俗点的话解释一下
作者: micro_hx    时间: 2015-7-9 00:00
比如有两个object A,B;
A在等待B中的方法,B在等待A中的方法,但是A,B两个object都希望对方放弃,所以就A,B就一起等待,一直等啊等,等着等着就死锁了,,,,
作者: 梁思宇    时间: 2015-7-9 00:15
就好像七龙珠,不过这次只有2个龙珠
集齐2个珠子能召唤神龙
然后你和别人同时出发,你先抢到了1星珠子,他先抢到了2星,然后你俩谁都不想放弃自己的珠子
然后自然永远不可能召唤出神龙了...

再比如,你和他都想上厕所,厕所在旅馆的套间里
吧台上有两把钥匙,一种是外间钥匙,一种是里屋钥匙
然后你拿到了外间钥匙,他拿到了里屋钥匙
你拿着外间钥匙,打开了101的外门,却发现进不了里间.
他却去了201(因为是多线程)虽然拿着里间的钥匙,但是连外间都进不去
于是死锁...

再比如,黑马入学,必须集齐10技术分,并发10篇博客才行.
但是假如,论坛的技术分每次只发放10分,除非有新人入学后才会发放下一批
而且,同时,博客的审批老师也只审批一个人的博客,除非有新同学入学,才会审批另外一个人的博客
但是,申请技术分和申请审批博客是可以同时进行的
于是,你去找老师要技术分,他去找老师给他批博客
然后两个老师都不再工作,你永远无法审批博客,他永远拿不到技术分...
于是就死锁了..




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