004JAVA多线程脏读

package com.skcc.mthread;

public class A_003DirtRead {

private String username="zjy";
private String password="123456";

public A_003DirtRead() {
    // TODO Auto-generated constructor stub
}

public synchronized void setValue(String username,String password) {
    this.username = username;
    try {
        Thread.sleep(2000);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    this.password = password;
    System.out.println("Set Result username="+this.username + " password="+this.password);
}

/****
 * synchronized
 * ****/
public  void getValue() {
    System.out.println("Get Value username="+username + " password="+password);
}

public static void main(String[] args) {
    // TODO Auto-generated method stub

    A_003DirtRead dirtRead = new A_003DirtRead();
    //dirtRead.getValue();
    new Thread(new Runnable() {

        @Override
        public void run() {
            // TODO Auto-generated method stub
            dirtRead.setValue("tomcat", "jboss");
        }
    }).start();

    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    dirtRead.getValue();

}

}