java多线程银行取钱_用java线程同步实现银行取款和存款。
题目是:编写程序实现线程的同步.假设一个银行的ATM机,它可以允许用户存款也可以取款.现在一个账户上有200元,用户A和用户B都拥有在这个账户上存款和取款的权利.用户A将存入100元...
题目是:编写程序实现线程的同步.假设一个银行的ATM机,它可以允许用户存款也可以取款.现在一个账户上有200元,用户A和用户B都拥有在这个账户上存款和取款的权利.用户A将存入100元,而用户B将取出50元,那么最后账户的存款应该是250元。求代码
那位大哥大姐会做啊?我的是
//利用线程同步实现模拟银行取款和存款
class Account
{
private static int cunqian = 200;
String name;
static float amount;
static float bmount;
public Account(String name,float amount,float bmount)
{
this.name=name;
this.amount=amount;
this.bmount=bmount;
}
public synchronized static void deposit(float amt)
{
float tmp = amount;
tmp += amt;
try
{
Thread.sleep(10);//模拟其它处理所需要的时间,比如刷新数据库等
}
catch (InterruptedException e)
{
}
amount = tmp;
}
public synchronized static void withdraw(float bmt)
{
float tmp = bmount;
tmp -= bmt;
try
{
Thread.sleep(10);//模拟其它处理所需要的时间,比如刷新数据库等
}
catch (InterruptedException e)
{
}
bmount = tmp;
}
public static float getBalance()
{
return (amount+bmount);
}
}
class Customer extends Thread
{ public void run()
{
for(int i=0;i<=1;i++)
Account.deposit(100.0f);
Account.withdraw(50.0f);
}
}
public class AccountTest
{
public static void main(String[] args)
{
Customer customerA=new Customer();
Customer customerB=new Customer();
customerA.start();
customerB.start();
System.out.println();
System.out.println("最后总钱数:" + Account.getBalance());
}
}
运行结果为0,谁能帮我改正一下。
展开
java多线程银行取钱_用java线程同步实现银行取款和存款。相关推荐
- Java多线程练习--取钱
1.需求: // 小明和小红是一对夫妻,他们有一个共同的账户,余额是10万元,模拟2人同时去取钱10万. // 分析: // 1:需要提供一个账户类,创建一个 ...
- JAVA多线程----用--取钱问题1
"生产者-消费者"模型,也就是生产者线程只负责生产,消费者线程只负责消费,在消费者发现无内容可消费时则睡觉.下面举一个比较实际的例子--生活费问题. 生 活费问题是这样的:学生每月 ...
- java多线程遇到的问题_关于Java多线程遇到的问题.
1.最近在学习Java多线程,看到视频中要实现一个类似闹钟和小明的情景, 要求闹钟响,小明关闹钟, 三秒后闹钟再响,小明再关, 重复10次程序结束. 不知道为什么我的程序小明只能输出一次. publi ...
- java中负数取余数_数学 - java如何用负数进行模数计算?
数学 - java如何用负数进行模数计算? 我做模数错了吗? 因为在Java -13 % 64应该评估为-13,但我得到51. 14个解决方案 98 votes 负数模数的两个定义都在使用 - 一些语 ...
- JAVA——多线程——实现n个共享数据的线程同步
实验目的:实现n个共享数据的线程同步 代码:` package xiancheng;class ShareData{private char[] c=new char[4]; //n=4,可调publ ...
- java多线程学习二、安全与不安全示例:12306买票和银行取钱、java内存模型、内存可见性、线程同步块和方法
文章目录 前言 1. 什么是块,分为几种 2. 静态块与构造块的区别 一. 举例说明:并发情况下,线程不安全 1. 示例1:unsafe12306取票 2. 示例2:unsafe银行取钱 二.线程不安 ...
- java银行安全性_Java使用同步方法解决银行取钱的安全问题案例分析
本文实例讲述了Java使用同步方法解决银行取钱的安全问题.分享给大家供大家参考,具体如下: 一 点睛 与同步代码块对应,Java的多线程安全支持还提供了同步方法,同步方法就是使用synchronize ...
- java银行取款_Java写简单的银行取钱系统
按ctrl+a 选中所有的代码删除,再复制下面的代码输入即可 import java.util.Scanner; public class 简单的银行取钱系统 //class的名字可以自己新建和这个一 ...
- Java线程安全和线程同步——以银行取钱为例
Java线程安全和线程同步(银行取钱案例) 一.线程安全问题 案例:银行多用户操作同一账户 public class SafeBank {public static void main(String[ ...
最新文章
- 图神经网络(Graph Neural Networks,GNN)综述
- next用法C语言,C语言可变参数的使用
- c++ 0x8000ffff灾难性故障_《可靠性设计》——故障模式影响分析
- QT+FFMPEG实现视频播放
- SAFEARRAY使用方法示例
- 写给自己看的HTML、CSS、XHTML指南 八
- Javascript Math.ceil与Math.round与Math.floor区别
- oracle时间查询
- Newtonsoft.Json的使用
- iview组件 eslint校验出错 Parsing error: x-invalid-end-tag
- 利用C Free3.5 本身获得自身注册码
- android内存碎片问题优化梳理
- 颜色名称及色样表(HTML版)
- 新能源汽车智能制造工控安全解决方案
- 百度小程序html转码,百度小程序转换工具
- 计算机关机快捷图标,七大电脑关机快捷方式,知道3种以上都是大神!
- 夏天来了,教你怎么选西瓜
- Linux-C 简单的C语言日志库
- 微信小程序OCR插件使用指南
- matlab中figure图片大小修改