当前位置: 首页 > news >正文

第十六节:第三部分:多线程:线程安全问题、取钱问题的模拟

线程安全问题介绍:取钱的线程安全问题

1线程安全问题介绍:取钱的线程安全问题

取钱的线程安全问题

取钱的线程安全问题

取钱案例需求分析

4取钱案例需求分析

线程安全问题出现的原因

线程安全问题出现的原因

代码:模拟线程安全问题(上述取钱案例)

Account类(账户类)

package com.itheima.day3_thread_safe;public class Account {private double money;// 余额。public Account() {}public Account(double money) {this.money = money;}public double getMoney() {return money;}public void setMoney(double money) {this.money = money;}//小明 小红同时过来的public void DrawMoney(double money) {// 先搞清楚是谁来取钱?String name = Thread.currentThread().getName();// 1、判断余额是否足够if (this.money>=money) {System.out.println(name+"来取钱" +money+ "成功!");this.money-=money;System.out.println(name+"来取钱后,余额剩余:" +this.money);}else {System.out.println(name+"来取钱,余额不足~~");}}
}

DrawThread类(线程类)

package com.itheima.day3_thread_safe;public class DrawThread extends Thread {private Account acc;public DrawThread(Account acc,String name) {super(name);this.acc = acc;}@Overridepublic void run() {//取钱(小明,小红)acc.DrawMoney(100000);}
}

ThreadTest类(主程序:模拟线程安全问题)

package com.itheima.day3_thread_safe;
/*
* 目标:模拟线程安全问题。
* */
public class ThreadTest {public static void main(String[] args) {//1、创建一个账户对象,代表两个人的共享账户。Account acc = new Account(100000);// 2、创建两个线程,分别代表小明 小红,再去同一个账户对象中取钱10万。new DrawThread(acc,"小明").start();//小明new DrawThread(acc,"小红").start();//小红}
}

结果1

http://www.dtcms.com/a/268287.html

相关文章:

  • 浅谈漏洞扫描与工具
  • 计算机网络实验——互联网安全实验
  • 10046 解决 Oracle error
  • NLP文本预处理
  • Chunking-free RAG
  • 拼好题(各个平台的零散题目)
  • vue什么时候可以用index作为:key的索引
  • Vue计算属性(computed)全面解析:原理、用法与最佳实践
  • Python库 python-pyper 的详细使用(优秀的并发数据处理框架)
  • 第一次ctf比赛的赛后复现记录
  • ​保持矩阵秩不变的乘法
  • SoloSpeech:从混合音频中提取目标语音
  • 下载安装 com0com
  • Android16之解决报错:ckati: no such file or directory(二百四十九)
  • ros-noetic搭建turtlebot3测试
  • 数据运营策略 —— B-O价值模型
  • 【机器学习笔记Ⅰ】12 逻辑回归
  • 《Redis》缓存与分布式锁
  • usrp b210 亚克力外壳
  • 【机器学习笔记Ⅰ】11 多项式回归
  • hp开关机
  • CICD[导航]、docker+gitlab+harbor+jenkins从安装到部署
  • vuex 和持久化 vuex-persistedstate
  • macOS虚拟机登录AppleID,全版本,成功率高
  • 深度学习篇---简单果实分类网络
  • 群晖 DS3617xs DSM 6.1.7 解决 PhotoStation 安装失败问题 PHP7.0
  • 企业智脑:智能营销新纪元——自动化品牌建设与智能化营销的技术革命
  • Unreal Engine 5中的AI知识
  • Yocto项目:嵌入式Linux开发的“万能烹饪手册”
  • 力扣 hot100 Day36