亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

java 使用線程做的一個簡單的ATM存取款實例代碼

2019-11-26 16:00:54
字體:
來源:轉載
供稿:網友

實現Runnable接口。當一個線程已繼承了另一個類時,就只能用實現Runnable接口的方法來創建線程,且便于保持程序風格的一致性。

我們知道,一個具有生命的線程,具有下面五種狀態:

創建狀態

使用new運算符創建一個線程后,該線程僅僅是一個空對象,系統沒有分配資源,稱該線程處于創建狀態(new thread)

可運行狀態

使用start()方法啟動一個線程后,系統為該線程分配了除CPU外的所需資源,使該線程處于可運行狀態(Runnable)

運行中狀態

Java運行系統通過調度選中一個Runnable的線程,使其占有CPU并轉為運行中狀態(Running)。此時,系統真正執行線程的run()方法。

阻塞狀態

一個正在運行的線程因某種原因不能繼續運行時,進入阻塞狀態(Blocked)

死亡狀態

線程結束后是死亡狀態(Dead)

廢話不多說,下面直接上代碼:

Java代碼:

復制代碼 代碼如下:

package pack.java.thread.atm; 
    /**
     * 賬戶類;
     * @author Administrator
     *
     */ 
    public class Account { 

        private String name;  //用戶名; 
        private int value;    //賬戶余額; 

        /**
         * 存入金額;
         * @param monery
         */ 
        public void putMonery(int monery){ 
            this.value = this.value + monery;  
        } 

        /**
         * 取出金額;
         * @param monery
         * @return 金額;
         */ 
        public int getMonery(int monery){ 

            //判斷是否賬戶余額是否大于 要取出的錢; 
            if(this.value > monery ){ 
                this.value = this.value - monery;    
            }else{ 
                monery = this.value;  //賬戶余額不夠時,則取出,所有的賬戶余額的金額.  
                this.value = 0; 
            } 
            //返回取出的錢; 
            return monery; 
        } 

        /**
         * 查詢余額;
         * @return 返回賬戶余額;
         */ 
        public int search(){ 
            return this.value; 
        } 

        public String getName() { 
            return name; 
        } 
        public void setName(String name) { 
            this.name = name; 
        } 
        public int getValue() { 
            return value; 
        } 
        public void setValue(int value) { 
            this.value = value; 
        } 
    }

java代碼:

復制代碼 代碼如下:

import java.io.Serializable; 
/**
 * 取款線程類;
 * @author Administrator
 *
 */ 
public class FetchMoney extends Thread implements Serializable{ 

    private static final long serialVersionUID = -5059599151558445815L; 

    private Account account;  //賬戶對象; 
    private int monery;       //余額; 

    public FetchMoney(){ 
        super(); 
    } 

    public FetchMoney(int monery,Account account){ 
        this.account = account; 
        this.monery = monery; 
    } 

    @Override 
    public void run() { 
        // TODO Auto-generated method stub 
        int currMonery  = account.search();  //當前余額; 
        synchronized (account) { 
            try { 
                sleep(5);   //取款發費的時間; 
            } catch (InterruptedException e) { 
                // TODO Auto-generated catch block 
                e.printStackTrace(); 
            } 
            //取出余額; 
            int getMonery = account.getMonery(monery); 
            System.out.println("尊敬的"+account.getName()+"用戶您好!"+"當前的余額為:"+currMonery +"元."+"取出余額為:"+getMonery+"元."+"賬戶余額為:"+account.search()+"元"); 
        } 
    } 
}

java代碼:

復制代碼 代碼如下:

/**
 * 存款線程類;
 * @author Administrator
 *
 */ 
public class SaveMoney extends Thread implements Serializable{ 

    private static final long serialVersionUID = 3095120546560212724L; 

    private Account account;  //賬戶對象; 
    private int money;        //金額; 

    public SaveMoney(){ 
        super(); 
    } 

    public SaveMoney(int money,Account account){ 
        this.account = account; 
        this.money = money; 
    } 

    @Override 
    public void run() { 
        // TODO Auto-generated method stub 
        int currMonery = account.search(); //查詢賬戶余額; 

        //同步對象,只允許單線程操作; 
        synchronized (account) { 
            try { 
                sleep(5);  //查詢的時候,發費得時間; 
            } catch (InterruptedException e) { 
                // TODO Auto-generated catch block 
                e.printStackTrace(); 
            } 
            account.putMonery(this.money);   //插入金額; 
            //輸出存款信息; 
            System.out.println("尊敬的"+account.getName()+"用戶您好!"+"當前的余額為:"+currMonery +"元."+"存入余額為:"+this.money+"元."+"賬戶余額為:"+account.search()+"元"); 
        } 
    } 
}

java代碼:

復制代碼 代碼如下:

/**
 * ATM測試類;
 * @author Administrator
 *
 */ 
public class ThreadATMDemo { 

    /**
     * 主方法;
     * @param args
     */ 
    public static void main(String[] args) { 
        // TODO Auto-generated method stub 
        Account account = new Account(); 
        //設置用戶名; 
        account.setName("ZhouHaiTao"); 
        //初始化余額; 
        account.setValue(0); 

        //存入100; 
        new SaveMoney(100,account).start(); 

        //存入200; 
        new SaveMoney(200, account).start(); 

        //取出500; 
        new FetchMoney(500, account).start(); 
    } 
}

程序運行結果如下:

尊敬的ZhouHaiTao用戶您好!當前的余額為:0元.存入余額為:100元.賬戶余額為:100元
尊敬的ZhouHaiTao用戶您好!當前的余額為:0元.存入余額為:200元.賬戶余額為:300元
尊敬的ZhouHaiTao用戶您好!當前的余額為:0元.取出余額為:300元.賬戶余額為:0元

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品久久久久久久玫瑰园| 尤物九九久久国产精品的特点| 国产97人人超碰caoprom| 亚洲欧美综合区自拍另类| 国产精品视频色| 国产精品91视频| 久久久久久久国产| 精品久久久国产| 国产精品成久久久久三级| 亚洲精品国产福利| 亚洲自拍偷拍一区| 在线视频一区二区| 色yeye香蕉凹凸一区二区av| 神马国产精品影院av| 亚洲日本aⅴ片在线观看香蕉| 狠狠色狠色综合曰曰| 中文字幕av日韩| 日韩av在线一区| 国产69精品久久久久9| 国产精品日韩电影| 91欧美精品成人综合在线观看| 日韩va亚洲va欧洲va国产| 国产精品久久中文| 精品一区二区三区三区| 成人乱色短篇合集| 欧美日韩国产综合视频在线观看中文| 国产丝袜一区视频在线观看| 超在线视频97| 高潮白浆女日韩av免费看| 久久国产精品久久久久久| 欧美日韩激情视频| 久久久久久久久久国产精品| 成人欧美在线观看| 久久6免费高清热精品| 成人h猎奇视频网站| 综合网日日天干夜夜久久| 国产一区二区三区直播精品电影| 亚洲综合视频1区| 亚洲系列中文字幕| 国产日韩欧美在线| 色哟哟亚洲精品一区二区| 97精品国产aⅴ7777| 91高清视频在线免费观看| 日韩精品视频在线观看免费| 亚洲国产天堂久久国产91| 在线成人中文字幕| 欧美日韩国产黄| 国产精品99久久久久久久久| 日本不卡高字幕在线2019| 久久好看免费视频| 国产精品欧美风情| 俺也去精品视频在线观看| 亚洲第一网站男人都懂| 精品国内产的精品视频在线观看| 少妇高潮久久久久久潘金莲| 日韩欧美综合在线视频| 成人av番号网| 日韩在线精品视频| 欧美超级乱淫片喷水| 日韩小视频在线| 国产亚洲欧美一区| 欧美精品少妇videofree| 亚洲影视九九影院在线观看| 久久精品久久久久久国产 免费| 日韩欧美有码在线| 日韩精品中文字| 成人福利网站在线观看11| 国产精品入口夜色视频大尺度| 国产欧美精品日韩| 久久久久久久久久久网站| 日韩av黄色在线观看| 久久99热精品这里久久精品| 色悠悠久久88| 精品亚洲一区二区三区| 91精品久久久久久| 欧美激情国产精品| 91午夜在线播放| 欧美一级片在线播放| 亚洲成人精品视频在线观看| 亚洲免费人成在线视频观看| 国产97在线播放| 亚洲毛片在线看| 91九色国产社区在线观看| 久久久久五月天| 亚洲精品www久久久久久广东| 欧美黑人一区二区三区| 96精品久久久久中文字幕| 欧美有码在线视频| 国产欧美一区二区三区在线| 欧美激情性做爰免费视频| 国产精品一区二区三区在线播放| 浅井舞香一区二区| 亚洲国产女人aaa毛片在线| 日韩av最新在线观看| 久久韩剧网电视剧| 欧美猛交免费看| 国产成人亚洲综合青青| 亚洲成人网av| 欧美性受xxxx黑人猛交| 91在线观看欧美日韩| 亚洲a在线播放| 国产一区二区三区毛片| 日韩视频永久免费观看| 91中文字幕在线观看| 国产综合在线视频| 亚洲jizzjizz日本少妇| 欧美性20hd另类| 欧美国产日韩一区二区三区| 久久久噜噜噜久噜久久| 日韩色av导航| 国产成人精品久久| 国产一区二区三区四区福利| 久久97精品久久久久久久不卡| 最近2019免费中文字幕视频三| 欧美激情videos| 美乳少妇欧美精品| 2019亚洲男人天堂| 亚洲日本中文字幕| 国产精品白丝av嫩草影院| 97香蕉久久超级碰碰高清版| 日韩69视频在线观看| 国产精品免费一区豆花| 精品久久香蕉国产线看观看亚洲| 中文字幕9999| 日韩有码在线播放| 狠狠躁夜夜躁人人爽天天天天97| 日韩欧美在线字幕| 欧美午夜视频在线观看| 亚洲人成自拍网站| 日韩有码在线电影| 国模吧一区二区三区| 亚洲a中文字幕| 欧美性xxxxx| 97精品视频在线| 欧美成人免费一级人片100| 97色在线播放视频| 国产欧美日韩精品丝袜高跟鞋| 欧美激情图片区| 久久亚洲精品小早川怜子66| 国产精品久久久久久久久借妻| 亚洲一区二区三区四区在线播放| 亚洲天堂男人天堂女人天堂| 8090成年在线看片午夜| 91精品国产一区| 国产精品一区二区久久| 欧美久久精品一级黑人c片| 91国产精品91| 亚洲国产精品99久久| 日韩亚洲一区二区| 久久人人97超碰精品888| 国产福利视频一区| 亚洲欧美日本精品| 国产91久久婷婷一区二区| 国产精品扒开腿做| 国产精品欧美亚洲777777| 成人av电影天堂| 亚洲全黄一级网站| 亚洲第一福利视频| 亚洲aⅴ男人的天堂在线观看| 久久影视三级福利片| 久久视频在线观看免费| 91社影院在线观看| 亚洲第一二三四五区| 亚洲伊人一本大道中文字幕|