1.蜜蜂和熊的生产消费关系,熊在蜂蜜满10斤吃掉。蜜蜂一次生产一斤蜂蜜,且蜜蜂生成一斤蜂蜜花费的时间是10s。
十只蜜蜂和两只熊。
package com.yehomlab;import java.util.ArrayList;import java.util.List;class Bear implements Runnable { Listlist; public Bear(List list){ this.list=list; } public void run() { while(true){ synchronized(list){ int size=list.size(); if(size==0){ try { System.out.println("没蜜了快点采蜜去!"); list.wait(); } catch (Exception e) { } } else if(size>0 && size<10){ try { System.out.println("装满十个我再吃"); list.wait(); } catch (Exception e) { } } else if(size==10){ Integer i=list.remove(0); System.out.println("吃蜜喽"); list.notifyAll(); } } //yield(); } } }class Bee implements Runnable { final static int MAX=10; List list; public Bee(List list){ this.list=list; } public void run() { int i=1; while(true){ synchronized (list) { int size=list.size(); if(size>=MAX){ try { list.wait(); } catch (Exception e) { } } else if(size list =new ArrayList (); Bear B1 = new Bear(list); Bear B2 = new Bear(list); Bee E1 = new Bee(list); Bee E2 = new Bee(list); Bee E3 = new Bee(list); Bee E4 = new Bee(list); Bee E5 = new Bee(list); Bee E6 = new Bee(list); Bee E7 = new Bee(list); Bee E8 = new Bee(list); Bee E9 = new Bee(list); Bee E10= new Bee(list); new Thread(B1).start(); new Thread(B2).start(); new Thread(E1).start(); new Thread(E2).start(); new Thread(E3).start(); new Thread(E4).start(); new Thread(E5).start(); new Thread(E6).start(); new Thread(E7).start(); new Thread(E8).start(); new Thread(E9).start(); new Thread(E10).start(); }}