/**
* @Description TODO
* @Author "zhouhai"
* @Date2018/10/717:56
**/
public class DirtyRead {
private String username = "zhouhai";
private String password = "123";
public synchronized void setValue(String username, String password) {
this.username = username;
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
this.password = password;
System.out.println("setValue最终结果:username = "+username+",password="+password);
}
public void getValue() {
System.out.println("getValue方法得到:username = "+this.username+",password="+this.password);
}
public static void main(String[] args) {
final DirtyRead dr = new DirtyRead();
Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
dr.setValue("周海", "zhouhai");
}
});
t1.start();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
dr.getValue();
}
}
结果如下:
getValue方法得到:username = 周海,password=123
setValue最终结果:username = 周海,password=zhouhai