髒讀--- 事務資料訪問中的一個時間差
阿新 • • 發佈:2019-01-10
package com.java.preventIp; public class DirtyRead { private String username = "bjsxt"; private String password = "123"; 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("setValue最終結果是:username = "+username+",password = "+password); } public void getvalue(){//如果這裡不加synchronize,便會造成髒讀的問題 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("zd", "456"); } }); t1.start(); Thread.sleep(1000); dr.getvalue(); } }