zoukankan      html  css  js  c++  java
  • 多线程继承Thread类的实现方法

     -------------------------------------------------------------------------------------两个人AB通过一个账户A在柜台取钱和B在ATM机取钱!----------------------------------------------------------------------

    (一)创建一个Bank类

    package com.xykj.bank;

    public class Bank {

    // 假设一个账户有1000块钱
    static int money = 1000;

    // 柜台Counter取钱的方法
    public void Counter(int money) {// 参数是每次取走的钱
    Bank.money -= money;//取钱后总数减少
    System.out.println("A取走了" + money + "还剩下" + (Bank.money));
    }

    // ATM取钱的方法
    public void ATM(int money) {// 参数是每次取走的钱
    Bank.money -= money;//取钱后总数减少
    System.out.println("B取走了" + money + "还剩下" + (Bank.money));
    }

    }
     

    -------------------------------(二)创建一个PersonA类---------------------------------------

    package com.xykj.bank;


    public class PersonA extends Thread {
    // 创建银行对象
    Bank bank;

    // 通过构造器传入银行对象,确保两个人进入的是一个银行
    public PersonA(Bank bank) {
    this.bank = bank;
    }

    //重写run方法,在里面实现使用柜台取钱
    @Override
    public void run() {
    while (Bank.money >= 100) {
    bank.Counter(100);// 每次取100块
    try {
    sleep(100);// 取完休息0.1秒
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    }
    }
      

    -------------------------(三)创建一个PersonB类------------------


    package com.xykj.bank;

    public class PersonB extends Thread {
    // 创建银行对象
    Bank bank;

    // 通过构造器传入银行对象,确保两个人进入的是一个银行
    public PersonB(Bank bank) {
    this.bank = bank;
    }

    // 重写run方法,在里面实现使用柜台取钱
    @Override
    public void run() {
    while (Bank.money >= 200) {
    bank.ATM(200);// 每次取200块
    try {
    sleep(100);// 取完休息0.1秒
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }

    }
    }
    ----------------------------------------------创建创建一个测试类的调用类-------------------------------------
    public class Mainclass {

    /**
    * @param args
    */
    public static void main(String[] args) {
    Bank bank=new Bank();
    PersonA a=new PersonA(bank);
    PersonB b=new PersonB(bank);
    // 两个人开始取钱
    a.start();
    b.start();

    }

    }

     

  • 相关阅读:
    oracle查询锁表解锁语句
    转:js,jQuery 排序的实现,网页标签排序的实现,标签排序
    禁止页面缩放功能
    js 操作 cookie
    random模块
    以及模块的四种形式模块的四种形式和模块的调用
    函数的调用
    函数的返回值
    可变长参数
    函数的重点内容
  • 原文地址:https://www.cnblogs.com/1-9-9-5/p/8525600.html
Copyright © 2011-2022 走看看