多线程实现,生产者和消费者吃蛋糕问题。我认为问题出在类cake上,但是不会改,希望大神能给予帮助,谢谢

小仙女1228 小仙女1228 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
package duoxiancheng;
public class cake {
private int id;
public cake(){
this.id = id;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public class basket {
private cake[] cakes=new cake[10];
private int currentIndex=0;
public synchronized void push(cake cake){
while(currentIndex >= cakes.length){
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
cakes[currentIndex]=cake;
currentIndex++;
System.out.println("放入:"+cake.toString());
notify();
}
public synchronized cake pop(){
while(currentIndex <= 0){
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
currentIndex--;
cake temp=cakes[currentIndex];
System.out.println("吃掉:"+temp.toString());
notify();
return temp;
}

}
public class productor extends Thread {
private basket basket;
public productor(basket basket){
this.basket=basket;
}
public void run(){
while(true){
basket.pop();
//System.out.println("放入:"+cake.toString());
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public class customer implements Runnable{
private basket basket;
public customer(basket basket){
this.basket=basket;
}
public void run(){
while(true){
basket.pop();
//System.out.println("吃掉:"+cake.toString());
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public class test {

public static void main(String[] args) {
// TODO Auto-generated method stub
cake cake=new cake();
basket basket=new basket();
productor productor=new productor(basket);
customer customer=new customer(basket);
productor.start();
Thread th=new Thread(customer);
th.start();

}

}
...全文

相关推荐

cake_蛋糕_

计算制作蛋糕所需原料质量以减小成本.................

肝博士杨明博大夫

3个厨师做蛋糕,5个顾客吃蛋糕(java 线程问题)

模拟一个蛋糕店,3个师傅轮流做蛋糕,5个顾客轮流吃蛋糕,一个很实用的java线程例子;

u011750873

CakeEating:蛋糕吃问题的Python代码

蛋糕吃 用于使用值函数迭代解决蛋糕食用问题的Python代码。 受到约翰·史陶斯基(John Stachurski)和托马斯·萨金特(Thomas Sargent)的定量经济学(QuantEcon)的启发。 大致遵循Jerome Adda和Russell Cooper撰写的《经济动态》的第2章和第3章。 相关文件(在\ quantecon中): stochcp.py:解决蛋糕问题。 适用于以下情况:确定性,随机end赋和功能折现因子。 (随机end赋可以使用很大但数量有限的值)。 splittercp.py:解决离散选择(进餐或等待)蛋糕问题。 没有将其包含在“ stochcp.py”中,因为它太乱了。 splittercp_additive.py:与'discretecp.py'相同,除了它使用不同的方式包括随机因素。 仅为复制“经济动力学”图3.7而编写。 欢迎所有评论

十月飘零

dimensional-cake-rebuilt:您所吃的蛋糕可将您运送到各个维度,目前一直传到最后

重建立体蛋糕 我看到Dimensional Cake从未移植到1.9.4以上。 它是MIT许可的,我问我是否可以接管它,以防万一有一些源代码可用。 我决定从头开始构建它,因为没有可用的源代码,并从中借用了纹理和其他资源文件。 原始Mod: : gameCategorySlug mc-mods projectID 到目前为止我所做的 我已经成功地制作了一个蛋糕,当在The Overworld中食用时,它将带您到The End ,如果您将其放置在The End中并进行食用,它将带您回到The Overworld 。 但是,它目前并不能将您带回到原先的位置,我正在为此寻求解决方案。 一个建议是使用玩家功能,这对我来说是一个全新的蜡球。 我想知道记分板是否会更容易。 需要做什么 一种有效且希望优雅的方式来存储先前的尺寸和坐标,以便于返回。

楼小雨

Cake-Order-Sheet:帮助BR蛋糕装饰商跟踪蛋糕订单

蛋糕订购单 帮助BR蛋糕装饰商跟踪蛋糕订单!

A玩具爆款孙大帅
评论 1
收藏 已收藏
分享
返回顶部
小仙女1228
Java SE 62,621 成员 307,251 内容