package com.eds.newRetail.common;
/**
面试题:模拟银行账户对业务写方法加锁对业务读方法不加锁这样行不行?会造成脏读看业务逻辑是否允许加锁 允许脏读,如果只是读一下,不处理相关业务逻辑,就可以不加锁,加锁之后要考虑到加锁后效率非常低 */public class T { private int money = 0;
public synchronized void setMoney(int money) { try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(“修改金额完成。。。。”); this.money += money;
}
public /synchronized/ int getMoney() { System.out.println(“进入查询金额。。。”); return this.money; }
public static void main(String[] args) { T t = new T();
// a用户进入修改 new Thread(new Runnable() { @Override public void run() { t.setMoney(10); } }).start(); //--b用户进入 new Thread(new Runnable() { @Override public void run() { System.out.println("金额:"+t.getMoney()); } }).start();}
}