(1)银行类

package test4;
/**
 * 银行账户
 * @author user
 *
 */
public class Bank {

private static double balance;//类的变量,数据共享

public Bank(){

}
public Bank(double money){
balance = money;
}

//取款操作
public synchronized void getMoney(double money){
System.out.println(Thread.currentThread().getName()+"查询当前余额为"+balance+"元");
if(balance >= money){
balance -= money;
System.out.println(Thread.currentThread().getName()+"取款"+money+"元,当前余额为"+balance+"元");
}
}

}

(2)测试类

package test4;

public class Test {

public static void main(String[] args) {

//只有一个银行账户
Bank bank = new Bank(1000);

//模拟使用不同的APP同时操作银行账户
Qu wx = new Qu(bank,100);
Qu zfb = new Qu(bank,100);
Qu wy = new Qu(bank,100);

wx.setName("微信");
zfb.setName("支付宝");
wy.setName("网银");

wx.start();
zfb.start();
wy.start();

}

}

(3)取继承thread方法

package test4;

public class Qu extends Thread{

private Bank bank;
private double money;

public Qu(Bank b,double money){
this.bank = b;
this.money = money;
}

@Override
public void run() {
bank.getMoney(money);
}

}

小结:在执行多任务以及下载多文件时,可以通过多线程的并发操作机制达到目的。

模拟银行取钱 (多线程操作的好处)相关推荐

  1. 线程同步之模拟银行取钱实例

      线程同步的机制就是队列和锁,把共享的资源加上一把锁,然后把线程进行排队,实现安全的线程.下面为大家模拟银行取钱的实例,代码如下: public class Unsafebank {public s ...

  2. java多线程学习二、安全与不安全示例:12306买票和银行取钱、java内存模型、内存可见性、线程同步块和方法

    文章目录 前言 1. 什么是块,分为几种 2. 静态块与构造块的区别 一. 举例说明:并发情况下,线程不安全 1. 示例1:unsafe12306取票 2. 示例2:unsafe银行取钱 二.线程不安 ...

  3. java银行安全性_Java使用同步方法解决银行取钱的安全问题案例分析

    本文实例讲述了Java使用同步方法解决银行取钱的安全问题.分享给大家供大家参考,具体如下: 一 点睛 与同步代码块对应,Java的多线程安全支持还提供了同步方法,同步方法就是使用synchronize ...

  4. 线程安全经典案例:银行取钱问题

    银行取钱的基本流程基本上可以分为如下几个步骤. (1)用户输入账户.密码,系统判断用户的账户.密码是否匹配. (2)用户输入取款密码 (3)系统判断账户余额是否大于取款余额 (4)如果余额大于取款余额 ...

  5. c语言求出伍位数,简介 模拟银行的钱数大写输出例如345叁肆伍方法/步骤 首先打开VC++ 文件》》》新建 创建一个C++空白文档 先声明头文件复制代码 代码...

    简介 模拟银行的钱数大写输出例如 345 叁肆伍 方法/步骤 首先打开VC++ 文件>>>新建 创建一个C++空白文档 先声明头文件 #include 声明变量 char *p[10 ...

  6. Java线程安全和线程同步——以银行取钱为例

    Java线程安全和线程同步(银行取钱案例) 一.线程安全问题 案例:银行多用户操作同一账户 public class SafeBank {public static void main(String[ ...

  7. java银行取款_Java写简单的银行取钱系统

    按ctrl+a 选中所有的代码删除,再复制下面的代码输入即可 import java.util.Scanner; public class 简单的银行取钱系统 //class的名字可以自己新建和这个一 ...

  8. 经典的同步问题(银行取钱)

    银行取钱问题是非常经典的同步问题,如果不采用同步方法,可能也不会发生错误,但就是那小概率事件就可以称之为BUG吧. 没有使用同步方法的代码如下: public class ErrorTest{publ ...

  9. java多线程银行取钱_用java线程同步实现银行取款和存款。

    题目是:编写程序实现线程的同步.假设一个银行的ATM机,它可以允许用户存款也可以取款.现在一个账户上有200元,用户A和用户B都拥有在这个账户上存款和取款的权利.用户A将存入100元... 题目是:编 ...

最新文章

  1. 业界 | 计算芯片革命来临?英伟达谷歌入局紧逼英特尔
  2. 包里替换class文件_Java 反射之根基 Class 类
  3. JUC多线程:创建线程的四种方式
  4. 怎样用bootsrapcol-md来实现四分屏_用会议平板提升会议效率,做好这两点
  5. 03_SpringCloud整合Ribbon实现负载均衡
  6. 64位程序怎么判断指针是否有效_AArch64应用程序级编程模型
  7. ZetCode 数据库教程
  8. SQL数据库语言基础之SqlServer条件查询、排序数据表、like模糊查询【大总结】
  9. 初识Python正则表达式(9课连发)
  10. 浏览器默认事件,事件监听,事件委托
  11. 数据分析学习记录--用EXCEL完成简单的单因素方差分析
  12. qq邮箱foxmail imap服务器,Foxmail如何设置IAMP邮箱
  13. 7-3 敲笨钟 (20 分)Java
  14. element-ui换肤,全局换肤
  15. GBK转UTF8汉字数量为奇数位时,多出来的末尾汉字会乱码
  16. 希尔排序(详解与代码)
  17. 移动硬盘新加卷变为本地磁盘且不能打开磁盘查看文件
  18. 基于51单片机的PWM控制马达电机调速正反转
  19. Less or Equal
  20. MATLAB中ode45()和Runge-Kutta算法(4阶)的比较

热门文章

  1. 【工具】TFT彩屏图片点阵取模工具,Img2Lcd图片取模软件,图片生成c语言头文件...
  2. 【arduino】arudino开发ESP32 SPIFFS文件上传方法
  3. Linux数据报文接收发送总结7
  4. 基于MATLAB的车牌定位和识别
  5. Universal Windows Platform(UWP)应用的窗口特性
  6. 【实验吧】编程循环求底运算
  7. 【安全牛学习笔记】拒绝服务***工具
  8. 监控摄像机选型攻略之有无必要性
  9. eclipse egit(分支管理 上)
  10. Android 插件化总结