线程安全问题 的小案例

java 复制代码
package Thread_api_test;



public class ThreadSafety {
    //模拟线程安全问题
    public static void main(String[] args) {
        //1:创建一个账户对象 代表两个人的共享账户
        Account acc=new Account("ICBC",10000);
        //创建两个线程 分别两个人 再去同一个账户里取钱10000


        new DrawThread(acc,"第一个人").start(); //第1个人
        new DrawThread(acc,"第二个人").start(); //第2个人

    }
}
java 复制代码
package Thread_api_test;

public class DrawThread extends Thread {

private Account acc;
public DrawThread(Account acc,String name){
    super(name);
    this.acc=acc;
}

    @Override
    public void run() {
        super.run();
        //取钱
        acc.drawMoney(10000);
    }
}
java 复制代码
package Thread_api_test;

public class Account {
    private String carId;  //卡号
    private double money ;//余额

    public Account() {
    }

    public Account(String carId, double money) {
        this.carId = carId;
        this.money = money;

    }
    public void drawMoney(double mony) {
        //先知道那个人来取钱
      String name= Thread.currentThread().getName();
      if (this.money>=mony){
          System.out.println(name+"来取钱"+mony+"成功!");
          this.money-=mony;
          System.out.println(name+"来取钱后:剩余的":"+this.money);
      }else{
          System.out.println(name+"来取钱:余额不足~~!");
      }
    }




    public String getCarId() {
        return carId;
    }

    public void setCarId(String carId) {
        this.carId = carId;
    }

    public double getMoney() {
        return money;
    }

    public void setMoney(double money) {
        this.money = money;
    }


}
相关推荐
Scott9999HH38 分钟前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
腻害兔44 分钟前
【若依项目-产品经理视角】深度拆解 RuoYi-Vue-Pro 商城模块:从商品管理到交易引擎,50 张表撑起一整套电商系统
java·大数据·vue.js·产品经理·ai编程
不好听6131 小时前
从一行 JSX 到屏幕像素:前端开发者必须懂的浏览器渲染管线
前端
恒拓高科WorkPlus1 小时前
企业级内网即时通讯建设模型:BeeWorks内网IM四层架构
前端
码智社2 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
AI云海2 小时前
python 列表、元组、集合和字典
开发语言·python
前端小李子2 小时前
前端环境变量裸奔?我用 EnvShield 给它穿了件防弹衣
前端
youtootech2 小时前
HarmonyOS《柚兔学伴》项目实战25-我的页面、Web 嵌入与项目总结
前端·华为·harmonyos
小林ixn2 小时前
从零到一理解 React 父子组件通信:手写一个 Todo 应用带你彻底搞懂单向数据流
前端·javascript·react.js
萧瑟余晖3 小时前
JDK 26 新特性详解
java·开发语言