gpt4 book ai didi

java - 无循环死锁

转载 作者:行者123 更新时间:2023-12-02 08:20:48 25 4
gpt4 key购买 nike

如果我画一个图来表示所有可能的对阻塞函数(java同步方法)的调用,并且我在这个图中没有任何循环,我可以确定死锁是不可能的吗? Petri 网不是这样工作的吗?

我不是在寻找这样的答案:使用一些怪物框架等等。

我想使用同步方法处理多线程。

EDIT1:尖箭头表示一个类是否调用另一个类的任何同步方法编辑2:klick @这里的例子,显示了一个循环

最佳答案

不,这还不够。假设你必须有线程:A和B。A调用对象o1的方法m1,该方法调用对象o2的方法m1。线程B调用对象o2的方法m2,对象o2又调用对象o1的方法m2。假设所有方法都是同步的。现在,A和B同时执行,导致死锁。不过,方法之间不存在循环调用关系。

这是家庭作业吗?

即使您对类进行了编辑,但这还不够,因为您可以通过非同步方法调用来关闭循环。

关于java - 无循环死锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5511229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com