编写生产者/消费者问题的应用程序。生产者以0~200ms的速度随机产生30个小写字母,消费者以0~2s的速度取出字母,并显示在屏幕上。 多谢!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【kinghai888】截止到2008-06-29 15:54:20的历史汇总数据(不包括此帖):
    发帖数:0                  发帖分:0                  
    结贴数:0                  结贴分:0                  
    未结数:0                  未结分:0                  
    结贴率:-------------------结分率:-------------------
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
      

  2.   

    这个应该是线程方面的作业吧
    建议看看Thread方面的API
      

  3.   

    1.看看线程方面的资料,基本上都是以生产者-消费者作为例子的
    2.google,baidu搜索下,非常之多
      

  4.   

    class Producter extends Thread 

    Queue q; 
    Producter (Queue q) 

    this.q=q; 

    public void run() 

    for(int i=0;i<10;i++) 

    q.put(i); 
    System.out.println("producter :"+i); 


    } class Consumer extends Thread { 
    Queue q; Consumer(Queue q) 

    this.q=q; 

    public void run() 

    while(true) 

    System.out.println("Consumer:"+q.get()); 



    class Queue 
    //key 

    int value; 
    boolean bFull=false; public synchronized void put(int i) 

    if(!bFull) 

    value=i; 
    bFull=true; 
    notify();//必须用在synchronized 

    try { 
    wait();//必须捕获异常 
    } catch (InterruptedException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 

    } public synchronized int get() 

    if(!bFull) 
    try 

    wait(); 
    } catch (InterruptedException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 

    bFull=false; 
    notify(); 
    return value; 
    } } public class test //测试类 

    public static void main(String[] args) 

    Queue q=new Queue(); 
    Producter p=new Producter(q); 
    Consumer c=new Consumer(q); 
    p.start(); 
    c.start(); 
    } }