- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
按照 Oracle java 文档 ( https://docs.oracle.com/javase/tutorial/essential/concurrency/deadlock.html ) 中给出的死锁示例,我想模拟我所在国家/地区的情况。当两列火车相向行驶时,到达中间站的火车首先将一把“ key ”交给候车人员(火车不 parking ,但火车司机将装有 key 的大袋子扔到站台上)。在那里等候的工作人员会来收集)。然后由稍后到达中间站的另一列火车收集。如果两列火车同时到达车站,就会导致僵局。因此,我编写了以下代码来说明这一点:
public class Deadlock
{
static class Express
{
private final String name;
public Express(String name)
{
this.name = name;
}
public String getName()
{
return this.name;
}
public synchronized void reached(Express laterTrain)
{
System.out.println(this.name + " is earlier than " +
laterTrain.getName());
giveKey(laterTrain);
}
public synchronized void giveKey(Express laterTrain)
{
System.out.println(name + " gives key to " +
laterTrain.getName());
}
}
public static void main(String[] args)
{
final Express Rajdhani1 = new Express("Rajdhani ONE");
final Express Rajdhani2 = new Express("Rajdhani TWO");
new Thread(new Runnable()
{
public void run()
{
Rajdhani1.reached(Rajdhani2);
}
}).start();
new Thread(new Runnable()
{
public void run()
{
Rajdhani2.reached(Rajdhani1);
}
}).start();
}
}
我期待这样的输出:
Rajdhani ONE is earlier than Rajdhani TWO
Rajdhani TWO is earlier than Rajdhani ONE
并且程序永远卡在那里。但是,我得到了以下输出,并且执行立即返回到命令行。怎么办?
Rajdhani ONE is earlier than Rajdhani TWO
Rajdhani TWO is earlier than Rajdhani ONE
Rajdhani ONE gives key to Rajdhani TWO
Rajdhani TWO gives key to Rajdhani ONE
最佳答案
我没有运行您的代码,但您所做的事情与链接的示例代码不同:您正在调用 giveKey
reached()
中的错误对象功能。
根据引用的示例,它应该是:
// bower.bowBack(this);
laterTrain.giveKey(this);
但你正在打电话:
// this.bowBack(bower);
this.giveKey(laterTrain);
关于java - 该 Java 程序没有显示预期的死锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47830417/
我有类似下面的代码: ... id: myComponent signal updateState() property variant modelList: [] Repeater { mo
我正在处理一些我无法展示的私有(private)代码,但我已经制作了一些示例代码来描述我的问题: 主.c: #include #include #include #include typede
这个问题在这里已经有了答案: 关闭10 年前。 Possible Duplicate: what are the differences in die() and exit() in PHP? 我想
在编写 Perl 模块时,在模块内部使用 croak/die 是一个好习惯吗? 毕竟,如果调用者不使用 eval block ,模块可能会使调用它的程序崩溃。 在这些情况下,最佳做法是什么? 最佳答案
我有一些搜索线程正在存储结果。我知道当线程启动时,JVM native 代码会代理在操作系统上创建新 native 线程的请求。这需要 JVM 之外的一些内存。当线程终止并且我保留对它的引用并将其用作
我刚刚花了很多时间调试一个我追溯到 wantarray() 的问题。 .我已将其提炼为这个测试用例。 (忽略 $! 在这种情况下不会有任何有用信息的事实)。我想知道为什么wantarray在第二个示例
我看到一些代码是这样做的: if(something){ echo 'exit from program'; die; } ...more code 和其他只使用 die 的人: if
我正在尝试将此表格用于: 如果任何 $_POST 变量等于任何其他 $_POST 变量抛出错误。 如果只有几个,那不是问题,但我有大约 20 个左右所以如果我想这样做,我将不得不像这样 但这
每次我运行: hadoop dfsadmin -report 我得到以下输出: Configured Capacity: 0 (0 KB) Present Capacity: 0 (0 KB) DFS
我是一名优秀的程序员,十分优秀!