gpt4 book ai didi

java - 消费者生产者程序

转载 作者:行者123 更新时间:2023-12-01 04:13:20 26 4
gpt4 key购买 nike

我需要做一个消费者生产者问题作为家庭作业。我被困在重复线程中。仅生产 1 个对象,仅消耗 1 个对象。如果对象存在于数组中,则生产者不会生产并等待消费者消耗它。

class PC extends Thread{
static int i=1;
static int storage[]=new int[1];
String info;

PC(String _info)
{
this.info=_info;
}

public synchronized void consume()
{
if(storage[0]==-1)
{
try {
System.out.println("C: 0" );
wait();
} catch(InterruptedException e) {
System.out.println("InterruptedException caught");
}
}

else
{
System.out.println("C: " + storage[0]);
storage[0]=-1;
i++;

notify();
}
}

public synchronized void prod()
{
if(storage[0]!=-1)
{
try {
System.out.println("P: 0" );
wait();

} catch(InterruptedException e) {
System.out.println("InterruptedException caught");
}
}
else
{
storage[0]=i;

System.out.println("P: " + storage[0]);

notify();
}
}

public void run()
{
if(info=="producer"){

prod();
}
else
consume();
}


public static void main(String args[])
{

storage[0]=-1;


PC consumer =new PC("consumer");
PC producer =new PC("producer");

consumer.start();
producer.start();



}

}

最佳答案

使用将由生产者消费者线程共享的BlockingQueue。如果您需要更多帮助,请告诉我。

关于java - 消费者生产者程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19684732/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com