Question: Java can someone please explain the keyword synchronized job and explain to me the code and how deadlock is hapenning public class Deadlock { static

Java can someone please explain the keyword synchronized job and explain to me the code and how deadlock is hapenning

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();

}

}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!