有关Java中死锁情况的问题

有关Java中死锁情况的问题,第1张

有关Java中死锁情况的问题

需要注意的重要一点是,锁定的不是 方法 而是 对象实例

当您呼叫时

alphonse.bow(gaston)
,它将尝试获取锁定
alphonse
。拥有锁后,它将打印一条消息,然后调用
gaston.bowBack(alphonse)
。此时,它尝试获取对的锁定
gaston
。一旦拥有了锁,它将打印一条消息,然后释放该锁,最后释放该锁
alphonse

在死锁中,锁的获取顺序使得任何一个线程都无法继续进行。

  • 线程1:获得锁定
    alphonse
  • 线程2:获得锁定
    gaston
  • 线程1:打印消息
  • 线程1:尝试获取锁
    gaston
    -不能,因为线程2已经拥有它。
  • 线程2:打印消息
  • 线程2:尝试获取锁
    alphonse
    -不能,因为线程1已经拥有它。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5131418.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-17
下一篇2022-11-17

发表评论

登录后才能评论

评论列表(0条)

    保存