java生产消费管程法

package senior;

public class TestPC {
		public static void main(String[] args) {
			SynContainer synContainer = new SynContainer();
			new Productor(synContainer).start();
			new Comsumer(synContainer).start();
		}
}
class Productor extends Thread{
	SynContainer synContainer;

	public Productor(SynContainer synContainer) {
		super();
		this.synContainer = synContainer;
	}
	@Override
	public void run() {
		for (int i = 1; i < 100; i++) {
			System.out.println("生产了第"+i+"只鸡");
			this.synContainer.push(new Chicken(i));
		}
		
	}
}
class Comsumer extends Thread{
	SynContainer synContainer;

	public Comsumer(SynContainer synContainer) {
		super();
		this.synContainer = synContainer;
	}
	@Override
	public void run() {
		for (int i = 1; i < 100; i++) {
			System.out.println("消费了第"+this.synContainer.pop().id+"只鸡");
			
		}
	}
	
}
class Chicken{
	int id;

	public Chicken(int id) {
		super();
		this.id = id;
	}
	
}
class  SynContainer{
	Chicken[]  chickens = new Chicken[10];
	 int count=0;
	 
	public synchronized void push(Chicken chicken) {
		// TODO Auto-generated method stub
		if (count==chickens.length) {
			try {
				this.wait();
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		
		chickens[count]=chicken;
		count++;
		this.notify();
	}
	public synchronized Chicken pop() {
		// TODO Auto-generated method stub
		if (count==0) {
			try {
				this.wait();
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		count--;
		Chicken chicken=chickens[count];
		this.notify();
		return chicken;
		
	}
}

生产了第1只鸡
生产了第2只鸡
生产了第3只鸡
生产了第4只鸡
生产了第5只鸡
生产了第6只鸡
生产了第7只鸡
生产了第8只鸡
生产了第9只鸡
生产了第10只鸡
生产了第11只鸡
生产了第12只鸡
消费了第7只鸡
消费了第11只鸡
消费了第12只鸡
生产了第13只鸡
生产了第14只鸡
生产了第15只鸡
消费了第10只鸡
消费了第14只鸡
消费了第15只鸡
消费了第13只鸡
生产了第16只鸡
消费了第9只鸡
消费了第16只鸡
生产了第17只鸡
消费了第8只鸡
生产了第18只鸡
消费了第17只鸡
生产了第19只鸡
消费了第18只鸡
消费了第19只鸡
生产了第20只鸡
消费了第6只鸡
生产了第21只鸡
消费了第20只鸡
生产了第22只鸡
生产了第23只鸡
生产了第24只鸡
生产了第25只鸡
生产了第26只鸡
生产了第27只鸡
消费了第21只鸡
消费了第26只鸡
消费了第27只鸡
消费了第25只鸡
消费了第24只鸡
消费了第23只鸡
消费了第22只鸡
消费了第5只鸡
消费了第4只鸡
消费了第3只鸡
消费了第2只鸡
消费了第1只鸡
生产了第28只鸡
生产了第29只鸡
生产了第30只鸡
消费了第28只鸡
生产了第31只鸡
消费了第30只鸡
生产了第32只鸡
生产了第33只鸡
生产了第34只鸡
消费了第31只鸡
生产了第35只鸡
消费了第34只鸡
生产了第36只鸡
消费了第35只鸡
消费了第36只鸡
消费了第33只鸡
消费了第32只鸡
消费了第29只鸡
生产了第37只鸡
生产了第38只鸡
生产了第39只鸡
生产了第40只鸡
生产了第41只鸡
生产了第42只鸡
生产了第43只鸡
生产了第44只鸡
生产了第45只鸡
生产了第46只鸡
生产了第47只鸡
生产了第48只鸡
消费了第37只鸡
消费了第47只鸡
消费了第48只鸡
消费了第46只鸡
消费了第45只鸡
消费了第44只鸡
生产了第49只鸡
消费了第43只鸡
生产了第50只鸡
生产了第51只鸡
生产了第52只鸡
生产了第53只鸡
生产了第54只鸡
生产了第55只鸡
消费了第49只鸡
消费了第54只鸡
消费了第55只鸡
消费了第53只鸡
消费了第52只鸡
消费了第51只鸡
消费了第50只鸡
消费了第42只鸡
消费了第41只鸡
消费了第40只鸡
消费了第39只鸡
消费了第38只鸡
生产了第56只鸡
生产了第57只鸡
生产了第58只鸡
生产了第59只鸡
生产了第60只鸡
生产了第61只鸡
生产了第62只鸡
消费了第56只鸡
生产了第63只鸡
消费了第62只鸡
生产了第64只鸡
消费了第63只鸡
生产了第65只鸡
消费了第64只鸡
生产了第66只鸡
生产了第67只鸡
消费了第65只鸡
生产了第68只鸡
消费了第67只鸡
生产了第69只鸡
消费了第68只鸡
生产了第70只鸡
消费了第69只鸡
生产了第71只鸡
消费了第70只鸡
生产了第72只鸡
消费了第71只鸡
生产了第73只鸡
消费了第72只鸡
消费了第73只鸡
消费了第66只鸡
消费了第61只鸡
消费了第60只鸡
消费了第59只鸡
消费了第58只鸡
消费了第57只鸡
生产了第74只鸡
生产了第75只鸡
生产了第76只鸡
生产了第77只鸡
生产了第78只鸡
生产了第79只鸡
生产了第80只鸡
生产了第81只鸡
生产了第82只鸡
生产了第83只鸡
生产了第84只鸡
生产了第85只鸡
消费了第74只鸡
消费了第84只鸡
生产了第86只鸡
生产了第87只鸡
消费了第85只鸡
消费了第86只鸡
生产了第88只鸡
生产了第89只鸡
消费了第87只鸡
消费了第88只鸡
消费了第89只鸡
消费了第83只鸡
消费了第82只鸡
消费了第81只鸡
消费了第80只鸡
消费了第79只鸡
消费了第78只鸡
消费了第77只鸡
消费了第76只鸡
消费了第75只鸡
生产了第90只鸡
生产了第91只鸡
生产了第92只鸡
生产了第93只鸡
生产了第94只鸡
生产了第95只鸡
生产了第96只鸡
生产了第97只鸡
生产了第98只鸡
生产了第99只鸡
消费了第90只鸡
消费了第99只鸡
消费了第98只鸡
消费了第97只鸡
消费了第96只鸡
消费了第95只鸡
消费了第94只鸡
消费了第93只鸡
消费了第92只鸡
消费了第91只鸡

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值