Java--银行账户存取款线程设计1(交互线程)
来源:互联网 发布:linux 挂载分区成功 编辑:程序博客网 时间:2024/05/16 07:00
线程之间可能无关,也可能交互。
而线程的同步机制并发执行的交互线程间存在与时间有关的错误。
public class account { private String name; private double balance; public account(String name) { this.name = name; this.balance=0; } public String getName() { return name; } public double getBalance() { return balance; } // public void put(double value){ if(value>0){ this.balance=this.balance+value; } } public double get(double value){ if(value>0){ if(value<=balance){ this.balance=this.balance-value; }else{ value=this.balance; this.balance=0; } } return value; }}
public class save extends Thread{ private account a; private double value; public save(account a, double value) { this.a = a; this.value = value; } public void run() { double b=a.getBalance(); a.put(value); System.out.println(a.getName()+"账户,现有"+b+",存入" +value+",余额"+a.getBalance()); }}
public class fetch extends Thread{ private account a; private double value; public fetch(account a, double value) { this.a = a; this.value = value; } public void run() { double b=a.getBalance(); System.out.println(a.getName()+"账户,现有"+b+",取出" +a.get(value)+",余额"+a.getBalance()); }}
public class bank { public static void main(String[] args) {// account a1=new account("wang");// save s1=new save(a1,100);// save s1=new save(new account("wang"),100);// s1.start(); account a1=new account("wang"); new save(a1,100).start(); new save(a1,200).start(); new fetch(a1,300).start(); new save(new account("xu"),100).start(); }}
运行结果1:
wang账户,现有0.0,存入100.0,余额100.0
wang账户,现有100.0,取出100.0,余额0.0
wang账户,现有0.0,存入200.0,余额200.0
xu账户,现有0.0,存入100.0,余额100.0
运行结果2:
wang账户,现有0.0,存入100.0,余额100.0
wang账户,现有100.0,存入200.0,余额300.0
xu账户,现有0.0,存入100.0,余额100.0
wang账户,现有300.0,取出300.0,余额0.0
由运行结果可以看出,线程很乱
0 0
- Java--银行账户存取款线程设计1(交互线程)
- Java--银行存取款线程设计2(线程互斥)
- Java线程之银行存取款
- Thread 线程之 银行账户多窗口存取款实现
- java线程存取款
- java 线程同步问题之银行存取款问题
- java 银行存取款模型的线程同步问题
- java创建一个银行账户,并具有存取款操作(参数传递)
- 银行取款程序 线程
- FXDD存取款,1-5工作日能够到国内个人银行账户
- Java多线程银行存取款程序
- 线程同步:银行帐户存、取款问题
- java编程题:100个线程同时向一个银行账户中存入1元钱
- java练习---模拟账户查询,实现存取款
- 【Java】银行中用户存取款业务的实现
- 银行ATM存取款机
- 银行ATM机存取款
- 银行取款[多线程]{使用同步方法确保线程同步}
- 富文本字符串颜色改变效果
- iOS - Xcode -Target , PROJECT 区别
- Blade模板引擎-常用语法格式
- 在前端弹出后台的错误信息
- java操作<Map转换List——>list集合重新排序—>List集合转换成JSON>
- Java--银行账户存取款线程设计1(交互线程)
- linux命令
- UIWebView页面出错404,403相关处理
- 函数前加static与不加static的区别
- c++ inline 函数
- Android Stuido 签名与获取
- JAVA中字符集详解
- log4j2配置输出日志到Kafka
- Spark性能优化第十季之全球独家揭秘Spark统一内存管理