面试题:模拟银行账户 对业务写方法加锁

    技术2025-06-27  8

    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();

    }

    }

    Processed: 0.009, SQL: 9