要锁定都一个资源。
public class T1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
TX re = new TX();
T2 t2 = new T2(re);
Thread t = new Thread(t2);
t.start();
T3 t3 = new T3(re);
Thread tt = new Thread(t3);
tt.start();
}
}
class TX {
public String name;
public String sex;
}
class T2 implements Runnable {
private TX r;
public T2(TX r) {
this.r = r;
}
@Override
public void run() {
// TODO Auto-generated method stub
int i = 0;
while (true) {
synchronized (r) {
if (i == 0) {
r.name = "AAAA";
r.sex = "FFFFF";
} else {
r.name = "BBB";
r.sex = "mmmmmmmmmmmmmmmmmmmm";
}
}
i = (i + 1) % 2;
}
}
}
class T3 implements Runnable {
private TX r;
public T3(TX r) {
this.r = r;
}
@Override
public void run() {
// TODO Auto-generated method stub
while (true) {
synchronized (r) {
System.out.println(r.name + "---------" + r.sex);
}
}
}
}
0 件のコメント:
コメントを投稿