class A{
private boolean run = true;
get/set ...
}
class T1 extends Thread {
private A a;
public T1(A a) {
this.a = a;
}
@Override
public void run() {
while (a.isRun()) {
}
}
}
class T2 extends Thread {
private A a;
public T2(A a) {
this.a = a;
}
@Override
public void run() {
a.setRun(false);
}
}
测试类
A a = new A();
T1 t1 = new T1(a);
T2 t2 = new T2(a);
t1.start();
Thread.sleep(1000);
t2.start();
为什么,线程t2对a 的run属性进行修改,而 线程t1却看不到?