网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)

本题程序中实现了一个“生产者一消费者问题”。生产者产生一个随机数存入DataPool类中,消费者从中取出数据。DataPool类一次只能存放一个数据。请更正题中带下划线的部分。

注意:不改变程序的结构,不得增行或删行。

class DataPool

{

private int data;

private boolean isFull;

public DataPool()

{

isFull=false;

}

public synchronized void putData(int d)

{

if(isFull= =true)

{

try

{

this.notify();

}

catch(InterruptedException e)

{}

}

data=d;

isFull=true;

System.out.println("生产了一个数据:"+data);

this.notify();

}

public synchronized int getData()

{

if(isFull= =false)

{

try

{

this.wait();

}

catch(InterruptedException e)

{}

}

isFull=false;

System.out.println("消费了一个数据"+data);

this.wait();

return this.data;

}

boolean getIsFull()

{

return isFull;

}

}

class Producer extends Thread

{

DataPool pool;

public Producer(DataPool pool)

{

this.pool=pool;

}

public void run()

{

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

{

int data=(int) (Math.random()*1000);

try

{//用于生产数据

sleep(data);

}

catch(InterruptedException e)

{}

pool.putData(data);

}

}

}

class Consumer implements Runnable

{

DataPool pool;

public Consumer(DataPool pool)

{

this.pool=pool;

}

public void run()

{

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

{

int data=pool.getData();

try

{//用于处理数据

sleep((int) (Math.random()*1000));

}

catch(InterruptedException e)

{}

}

}

}

public class advance

}

public static void main(String[] args)

{

Data Pool pool=new Data Pool();

Producer pro=new Producer(pool);

Runnable con=new Consumer(pool);

Thread conTh=new Thread(con);

&n


参考答案

更多 “ 本题程序中实现了一个“生产者一消费者问题”。生产者产生一个随机数存入DataPool类中,消费者从中取出数据。DataPool类一次只能存放一个数据。请更正题中带下划线的部分。注意:不改变程序的结构,不得增行或删行。class DataPool{private int data;private boolean isFull;public DataPool(){isFull=false;}public synchronized void putData(int d){if(isFull= =true){try{this.notify();}catch(InterruptedException e){}}data=d;isFull=true;System.out.println("生产了一个数据:"+data);this.notify();}public synchronized int getData(){if(isFull= =false){try{this.wait();}catch(InterruptedException e){}}isFull=false;System.out.println("消费了一个数据"+data);this.wait();return this.data;}boolean getIsFull(){return isFull;}}class Producer extends Thread{DataPool pool;public Producer(DataPool pool){this.pool=pool;}public void run(){for(int i=0; i<10; i++){int data=(int) (Math.random()*1000);try{//用于生产数据sleep(data);}catch(InterruptedException e){}pool.putData(data);}}}class Consumer implements Runnable{DataPool pool;public Consumer(DataPool pool){this.pool=pool;}public void run(){for(int i=0; i<10; i++){int data=pool.getData();try{//用于处理数据sleep((int) (Math.random()*1000));}catch(InterruptedException e){}}}}public class advance}public static void main(String[] args){Data Pool pool=new Data Pool();Producer pro=new Producer(pool);Runnable con=new Consumer(pool);Thread conTh=new Thread(con);&n ” 相关考题
考题 在生产者消费者问题中,生产者的代码中的signal(full)可能会唤醒()。A.生产者自己B.其它生产者C.消费者D.生产者或消费者

考题 7、在生产者消费者问题中,生产者的代码中的signal(full)可能会唤醒()。A.生产者自己B.其它生产者C.消费者D.生产者或消费者

考题 编程实现生产者-消费者问题。根据实验指导,在linux下用C语言实现生产者-消费者问题。最后提交的代码包括buffer.h, main.c。编译指令 gcc main.c –lpthread。按如下要求运行程序并展示结果。 (1) 一个生产者,一个消费者。观察结果,并解释结果是否正确。 (2) 生产者生产的速度大约为消费者消费的速度的3倍。观察并解释结果。 (3) 5个生产者,2个消费者。观察并解释结果。 查看相关实验文档完成上述任务。 提交:(1)代码。(2)上述三种情况的实验结果及分析。

考题 生产者追求——————————————,消费者追求————————————,封闭条件下实现均衡的时候,生产者和消费者同时实现了自己的目标。

考题 生产者-消费者问题是一个既有同步又有互斥的问题

考题 生态系统中各种成分之间最本质的联系是通过营养关系来实现的,即通过食物链把()连成一个整体。A.生物与非生物B.生产者与分解者C.生产者与消费者D.消费者与消费者

考题 【简答题】4.1 采用Java 多线程技术,设计实现一个符合生产者和消费者问题的程序。对一个对象(枪膛)进行操作,其最大容量是12颗子弹。生产者线程是一个压入线程,它不断向枪膛中压入子弹;消费者线程是一个射出线程,它不断从枪膛中射出子弹。

考题 用PV操作解决生产者和消费者问题。假设有一个可以存放1件产品的缓冲器;有m个生产者,每个生产者每次生产一件产品放入缓冲器中,有n个消费者,每个消费者每次从缓冲器中取出一件产品。

考题 利用线程间的通信模拟实现生产者消费者问题: 有5个生产者线程对象各自随机产生一个字母,并将生产出的产品放到缓冲区,等待消费者消费产品。有5个消费者对生产者的产品进行消费,消费完产品就将缓冲区清空。