package cn.sxt.thread;
public class Productor implements Runnable {
private Goods goods;
public Productor(Goods goods) {
this.goods=goods;
}
@Override
public void run() {
for (int i=0;i<10;i++) {
//轮流生产娃哈哈矿泉水与旺仔小馒头
if (i%2!=0) {
goods.set("旺仔", "小馒头");
try {
Thread.sleep(300);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else {
goods.set("娃哈哈", "矿泉水");
try {
Thread.sleep(300);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
消费者类
package cn.sxt.thread;
public class Customer implements Runnable{
private Goods goods;
public Customer(Goods goods) {
this.goods=goods;
}
public Customer() {
}
@Override
public void run() {
for (int i = 0; i < 10; i++) {
goods.get();//调用取出商品方法
try {
Thread.sleep(300);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
测试类
package cn.sxt.thread;
public class Test {
public static void main(String[] args) {
//创建共享资源
Goods g =new Goods();
//创建生产者线程
Productor p = new Productor(g);
//创建消费者线程
Customer c= new Customer(g);
new Thread(p).start();
new Thread(c).start();
}
}