Hey Leute!
Auf den Java-Seiten habe ich diese zum Thema Deadlock gefunden. Hier findet sich folgendes Code-Beispiel für einen Deadlock:
Ich sehe leider nur nicht wirklich, warum hier ein Deadlock entsteht.. Ich wäre Euch dankbar, wenn ihr mir hier auf die Sprünge helfen könnt!
Der Aufruf von
blockiert doch nur für das Objekt alphons die bow-Methode?! und könnte nach Abarbeitung dieser ja die bowBack-Methode aufrufen. Gleiches für den unteren Block mit gaston.. ???:L
Ich stehe auf dem Schlauch!
Vielen Dank für Eure Hilfe!
Auf den Java-Seiten habe ich diese zum Thema Deadlock gefunden. Hier findet sich folgendes Code-Beispiel für einen Deadlock:
Java:
public class Deadlock {
static class Friend {
private final String name;
public Friend(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
public synchronized void bow(Friend bower) {
System.out.format("%s: %s"
+ " has bowed to me!%n",
this.name, bower.getName());
bower.bowBack(this);
}
public synchronized void bowBack(Friend bower) {
System.out.format("%s: %s"
+ " has bowed back to me!%n",
this.name, bower.getName());
}
}
public static void main(String[] args) {
final Friend alphonse =
new Friend("Alphonse");
final Friend gaston =
new Friend("Gaston");
new Thread(new Runnable() {
public void run() { alphonse.bow(gaston); }
}).start();
new Thread(new Runnable() {
public void run() { gaston.bow(alphonse); }
}).start();
}
}
Ich sehe leider nur nicht wirklich, warum hier ein Deadlock entsteht.. Ich wäre Euch dankbar, wenn ihr mir hier auf die Sprünge helfen könnt!
Der Aufruf von
Java:
new Thread(new Runnable() {
public void run() { alphonse.bow(gaston); }
}).start();
blockiert doch nur für das Objekt alphons die bow-Methode?! und könnte nach Abarbeitung dieser ja die bowBack-Methode aufrufen. Gleiches für den unteren Block mit gaston.. ???:L
Ich stehe auf dem Schlauch!
Vielen Dank für Eure Hilfe!