java吧 关注:1,222,341贴子:12,678,211
  • 5回复贴,共1

求助, 生产者消费者模式的.............................

只看楼主收藏回复

class Data {
private String name;
private int amount;
public void set(String name, int amount) {
this.name = name;
this.amount = amount;
}
public void get() {
System.out.println(this.name + "= " + this.amount--);
}
public int getAmount() {
return this.amount;
}
}
class DataProvider implements Runnable {
private Data data;
private int num;
public DataProvider(Data data, int num) {
this.data = data;
this.num = num;
}
@Override
public void run() {
// TODO Auto-generated method stub
data.set("苹果", this.num);
}
}
class DataConsumer implements Runnable {
private Data data;
public DataConsumer(Data data) {
this.data = data;
}
@Override
public void run() {
// TODO Auto-generated method stub
for (int x = 0; x < data.getAmount(); x++) { //循环 设的数,就应该是30,但是只执行到一半,而直接写30就行.
data.get();
}
}
}
public class AA {
public static void main(String[] args) {
// TODO Auto-generated method stub
Data data = new Data();
new Thread(new DataProvider(data, 30)).start();
new Thread(new DataConsumer(data)).start();
}
}
问题在注释哪里,为什么消费者的循环不能执行完?? 只执行一半


IP属地:广东1楼2017-08-30 18:45回复
    求助


    IP属地:广东2楼2017-08-30 18:47
    回复
      因为你amount--的时候循环次数也--了


      IP属地:浙江来自iPhone客户端3楼2017-08-30 18:54
      收起回复