class Data{
String name;
Integer age;
public Data(String name,Integer age){
this.name=name;
this.age = age;
}
}
class A implements Runnable{
Data data;
public A(Data data){
this.data = data;
}
@Override
public void run() {
while(true){
synchronized (data.name){
synchronized (data.age){
System.err.println("A->"+data.name);
}
}
}
}
}
class B implements Runnable{
Data data;
public B(Data data){
this.data = data;
}
@Override
public void run() {
while(true){
synchronized (data.age){
synchronized (data.name){
System.err.println("B->"+data.name);
}
}
}
}
}
public class Sisuo {
public static void main(String args[]){
Data d = new Data("zs",12);
new Thread(new A(d)).start();
new Thread(new B(d)).start();
}
}