Java-多线程 银行取款小练习
来源:互联网 发布:淘宝规则大全2016 编辑:程序博客网 时间:2024/04/29 18:05
在生活中,如果两个人同时从一个银行账户取款,会不会取到双倍的钱?结果当然不会了,如果这样银行还不得破产,运用多线程synchronized关键字实现银行取款练习,要求同一时间只能有一个对象取钱。
代码如下:
package com.oracle.thread;public class BankDemo { public static void main(String[] args) { // TODO Auto-generated method stub Bank bank=new Bank(); Man man1=new Man(bank); man1.start(); Man man2=new Man(bank); man2.start(); }}//线程类class Man extends Thread{ private Bank bank=null; public Man(Bank bank){ this.bank=bank; } @Override public void run() { bank.getMoney(400); }}//银行类class Bank { private int money=500; public synchronized boolean getMoney(int num){ if (num<0) { //取钱的数目要大于0 System.out.println("输入错误!"); return false; }else if (num>money||money<0) { //判断余额是否足够 System.out.println("余额不足!"); return false; }else { try { //模拟取钱时间 Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("取款:"+num+"余额为"+(money-num)); money-=num; return true; } }}
如果有错误或者可以改进的地方,还请各位大神指点。
阅读全文
0 0
- Java-多线程 银行取款小练习
- Java多线程银行取款
- Java多线程银行存取款程序
- 用JAVA中的多线程示例银行取款问题
- 用JAVA的多线程实现银行取款的问题
- java银行取款机源码
- [多线程之一]-NSThread银行取款问题
- java多线程--银行存款取款
- 模拟ATM银行取款小程序
- Java线程之银行存取款
- 基于Java的银行取款系统
- 多线程互斥锁问题(多线程模拟银行存取款)
- java 创建多线程小练习
- 银行取款[多线程]{使用同步方法确保线程同步}
- 银行取款[多线程]{使用同步代码块确保线程同步}
- Lesson_for_java_day21--java的多线程练习(ATM存取款机、多窗口卖票系统、5人赛跑)
- C#学习笔记--关于银行存取款的小实验
- java 线程同步问题之银行存取款问题
- 汇编-使用gdb来调试汇编
- 你不知道的秘密——谷歌和布林佩奇的故事
- HttpClientUtil工具类
- 设计模式(14)-命令模式
- 20170717工作记账流水
- Java-多线程 银行取款小练习
- HDU
- SetRegistryKey函数
- STM32F2xx的tcp_echoserver例程解说
- MSP430F5529电子设计竞赛
- selectize控件设值问题
- 前端web学习--js中数组的操作方法
- CC2530 节点数量
- Spring和hibernate整合时报错