<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    線程程序實例

    Posted on 2008-04-21 20:50 橡皮人 閱讀(168) 評論(0)  編輯  收藏
    package com.nicholas.java;
    class KitChen {
    private static int MAX_BEADER = 200; // 饅頭一天最多做200個
    private static int MONEY = 2; // 饅頭2塊錢一個
    static boolean isCell = false;// 判斷伙計是否交易完成
    static boolean isFulfill = false;// 判斷顧客是否交易完成
    public void makeBread() {
      System.out.println("賣饅頭咯,今天的饅頭數量為:" + KitChen.MAX_BEADER + "\n"
        + "包子的價格為:" + KitChen.MONEY);
    }
    public synchronized void setBread(int bread) {
      while (!KitChen.isFulfill) {
       try {
        wait();
       } catch (InterruptedException e) {
        e.printStackTrace();
       }
      }
      if (KitChen.isCell) {
       this.notify();
      }
      if (KitChen.MAX_BEADER > 1) {
       KitChen.MAX_BEADER -= bread;
       MONEY *= bread;
       System.out.println("饅頭賣出 " + bread + "\n" + "收入金額為:"
         + KitChen.MONEY);
       KitChen.isCell = true;
      } else {
       System.out.println("不好意思今天的饅頭全部賣光了@");
      }
    }
    public int getBread() { // 剩余的饅頭
      return KitChen.MAX_BEADER;
    }
    public void foot() {
      System.out.println("今天剩余饅頭個數為:" + getBread() + " 掙得的錢為:" + MONEY);
    }
    }
    class CustomerA extends Thread {
    private KitChen k;
    private int count;// 買饅頭的個數
    CustomerA(KitChen k) {
      super("豬頭");
      this.k = k;
    }
    public void run() {
      System.out.println("<" + Thread.currentThread().getName() + ">"
        + " 我要饅頭");
      System.out.println("<老板 >" + Thread.currentThread().getName()
        + " 你要買多少饅頭?");
      count = 2;
      System.out.println(Thread.currentThread().getName() + " 我要" + count);
      KitChen.isFulfill = true;
      k.setBread(count);
      System.out.println(Thread.currentThread().getName() + "所買饅頭" + count);
    }
    }
    class CustomerB extends Thread {
    private KitChen k;
    private int count;
    CustomerB(KitChen k) {
      super("八戒");
      this.k = k;
    }
    public void run() {
      System.out.println("<" + Thread.currentThread().getName() + ">"
        + " 我要饅頭");
      try {
       Thread.sleep(2000);
      } catch (InterruptedException e) {
       // TODO 自動生成 catch 塊
       e.printStackTrace();
      }
      System.out.println("<老板 >" + Thread.currentThread().getName()
        + " 你要買多少饅頭?");
      count = 4;
      System.out.println(Thread.currentThread().getName() + " 我要 " + count);
      KitChen.isFulfill = true;
      k.setBread(count);
      System.out.println(Thread.currentThread().getName() + "所買饅頭" + count);
    }
    }
    public class MyThread {
    public static void main(String[] args) {
      KitChen kitchen = new KitChen();
      kitchen.makeBread();
      CustomerA a = new CustomerA(kitchen);
      CustomerB b = new CustomerB(kitchen);
      a.start();
      b.start();
      try {
       a.join();
      } catch (InterruptedException e) {
       // TODO 自動生成 catch 塊
       e.printStackTrace();
      }
      try {
       b.join();
      } catch (InterruptedException e) {
       // TODO 自動生成 catch 塊
       e.printStackTrace();
      }
      kitchen.foot();
    }
    }

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    posts - 28, comments - 5, trackbacks - 0, articles - 0

    Copyright © 橡皮人

    主站蜘蛛池模板: 久草福利资源网站免费| 国产成人+综合亚洲+天堂| 国产精品免费观看调教网| 国产成人精品久久亚洲高清不卡 | 亚洲av无码一区二区三区四区 | 国产1000部成人免费视频| 精品亚洲国产成AV人片传媒| 国产精品免费无遮挡无码永久视频| 亚洲人色婷婷成人网站在线观看 | 亚洲AV日韩AV永久无码久久| 成人爽a毛片免费| 亚洲国产老鸭窝一区二区三区| 免费福利电影在线观看| 亚洲av无码不卡一区二区三区| 色欲A∨无码蜜臀AV免费播| 亚洲精品午夜视频| 成年男女男精品免费视频网站 | 亚洲精品成人区在线观看| 特级毛片aaaa级毛片免费| 久久久久亚洲AV成人网人人网站 | 2019中文字幕免费电影在线播放| 亚洲欧洲日韩在线电影| 在线观看特色大片免费视频| 亚洲乱码日产精品一二三| www国产亚洲精品久久久日本| 一本一道dvd在线观看免费视频 | 久久亚洲AV无码精品色午夜麻| 亚洲人成免费网站| 亚洲精品无码专区久久| 亚洲av无码乱码在线观看野外 | 亚洲综合色区中文字幕| 成人亚洲综合天堂| a级午夜毛片免费一区二区| 亚洲天堂一区在线| 亚洲国产电影av在线网址| 久9这里精品免费视频| 亚洲精品无码国产片| 亚洲人成无码网站| 国产麻豆视频免费观看| 国产精品午夜免费观看网站| 亚洲短视频在线观看|