Java 并发编程--脏读

例子:
 
public class DirtyRead {
    private String username="zhangdeheng";
    private String password="123456";
    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) throws InterruptedException {
        final DirtyRead dr=new DirtyRead();
        Thread t1=new Thread(new Runnable() {
            @Override
            public void run() {
                dr.setValue("zhangdh","123");
            }
        });
        t1.start();
        Thread.sleep(1000);
        dr.getValue();
    }
}
运行结果
getValue方法结果,username=zhangdh,password=123456
setValue最终结果username=zhangdh,password=123
产生脏读。


猜你喜欢

转载自blog.csdn.net/qq_18377515/article/details/80326810