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

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

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

    隨筆-348  評論-598  文章-0  trackbacks-0
    package com.gcoresoft.homework.consumerproducer;

    public class Test {

        
    /**
         * 
    @param args
         
    */

        
    public static void main(String[] args) {
            
    // TODO Auto-generated method stub
            Products pros=new Products();
            
            Producers[] producers
    =new Producers[5];
            
    for(int i=0;i<producers.length;i++)
            
    {
                producers[i]
    =new Producers(pros, i, 5);
            }

            
            Consumers[] consumers
    =new Consumers[2];
            
    for(int i=0;i<consumers.length;i++)
            
    {
                consumers[i]
    =new Consumers(pros, i);
            }

            
            
    for(int i=0;i<producers.length;i++)
            
    {
                producers[i].start();
            }

            
            
    for(int i=0;i<consumers.length;i++)
            
    {
                consumers[i].start();
            }
            
        }


    }

    消費者
    package com.gcoresoft.homework.consumerproducer;

    public class Consumers extends Thread{

        
    private final int ID;
        
    private Products pros;
        
        
        
    public Consumers(Products pros, int ID)
        
    {
            
    this.ID=ID;
            setProducts(pros);
        }

        
        
    public void setProducts(Products pros)
        
    {
            
    this.pros=pros;
        }

        
        
    public void run()
        
    {
            
    for(int i=0;i<100;i++)
            
    {
                System.out.println(
    "Consumer "+ ID +"消費了"+pros.get());
                
    try
                
    {
                    sleep((
    int)(Math.random()*2000));
                }
    catch(Exception e){
                    
    //e.printStackTrace();
                    System.out.println("Exception in Consumer "+ID);
                }

            }

        }

    }


    生產者
    package com.gcoresoft.homework.consumerproducer;

    public class Producers extends Thread {

        
    private Products pros;
        
    private final int ID;
        
    private int num=0;
        
        
    public Producers(Products pros, int ID, int num)
        
    {    
            
    this.ID=ID;
            setProductsNum(num);
            setProducts(pros);
        }

        
        
    public void setProducts(Products pros)
        
    {
            
    this.pros=pros;
        }


        
    public void setProductsNum(int num)
        
    {
            
    this.num=num;
        }

        
        
    public void run()
        
    {
            
    for(int i=0;i<num;i++)
            
    {
                pros.add(ID
    *10+i);
                System.out.println(
    "Producer "+ ID +"生產了"+(ID*10+i));
                
    try
                
    {
                    sleep((
    int)(Math.random()*2000));
                }
    catch(Exception e){
                    
    //e.printStackTrace();
                    System.out.println("Exception in Producer "+ID);
                }

            }

        }

        
        
    }


    產品
    package com.gcoresoft.homework.consumerproducer;

    public class Products {

        
    private static int count;
        
    private static int num;
        
    private static int[] products;
        
        
    /**
         * 
    @param args
         
    */

        
    public static void main(String[] args) {
            
    // TODO Auto-generated method stub
            Products pros=new Products(200);
            
    for(int i=0;i<1000;i++)
                pros.add(i);
            
    for(int i=0;i<200;i++)
                System.out.println(
    "get:"+pros.get());
        }

        
        
    public Products()
        
    {
            setMaxNum(
    100);
        }

        
        
    public Products(int num)
        
    {
            setMaxNum(num);
        }

        
        
    public void setMaxNum(int num)
        
    {
            
    this.num=num;
            products
    =new int[num];
            count
    =0;
        }
        

        
    public synchronized void add(int i)
        
    {
            
    while(isFull())
                
    try {
                    wait();
                }
     catch (InterruptedException e) {
                    
    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            products[count
    ++]=i;
            
    //System.out.println("count:"+(count-1));
            notify();
        }

        
        
    private boolean isFull()
        
    {
            
    return count==num;
        }

        
        
    public synchronized int get()
        
    {
            
    while(isEmpty())
                
    try {
                    wait();
                }
     catch (InterruptedException e) {
                    
    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            notify();
            
    //System.out.println("count:"+count);
            return products[--count];
        }

        
        
    private boolean isEmpty()
        
    {
            
    return count==0;
        }

        

    }


    測試


    ---------------------------------------------------------
    專注移動開發

    Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
    posted on 2007-04-12 14:51 TiGERTiAN 閱讀(913) 評論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 四虎影在线永久免费观看| 在线精品亚洲一区二区三区| 中文字幕人成人乱码亚洲电影| 97se亚洲综合在线| 小说区亚洲自拍另类| 暖暖日本免费中文字幕| 在线jyzzjyzz免费视频| 精品久久久久久亚洲| 亚洲国产精品18久久久久久| a级毛片免费观看视频| 免费观看毛片视频| 亚洲国产综合专区在线电影| 精品在线观看免费| 国产成人福利免费视频| 精品亚洲一区二区三区在线观看| 亚洲国产日韩在线人成下载 | 一个人看的免费视频www在线高清动漫 | 两个人日本WWW免费版| 处破痛哭A√18成年片免费| 亚洲VA中文字幕无码毛片| 久久久久亚洲精品无码网址色欲| 免费一级毛片无毒不卡| 四虎1515hm免费国产| 亚洲国产成人在线视频| 三年片在线观看免费西瓜视频| 国产免费直播在线观看视频| 亚洲一级毛片在线观| 久久免费精品一区二区| 亚洲一区精品伊人久久伊人| 中文字幕乱码亚洲无线三区 | 老司机福利在线免费观看| av无码国产在线看免费网站| 亚洲国产婷婷六月丁香| 爱情岛论坛免费视频| 妞干网免费视频观看| 亚洲视屏在线观看| 久久成人a毛片免费观看网站| 久久精品国产精品亚洲人人| 久久亚洲欧美国产精品| 成年在线网站免费观看无广告 | 黄色网址大全免费|