标签:thread tor todo pack pre sleep ram java except
package mianbao; import java.util.Random; public class TestBread { /** * @param args */ public static void main(String[] args) { Store store=new Store(); Maker m=new Maker(store); Saler s=new Saler(store); m.start(); s.start(); } } //面包店类 class Store{ int num=0;//面包的个数 Random r=new Random(); //生产面包 public synchronized void make(){ if(num==0){ num=r.nextInt(20)+1; System.out.println("面包生产完毕 共有"+num); } //通知消费者来卖面包,自己阻塞 this.notify(); try { this.wait(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //销售面包 public synchronized void sale(){ if(num>0){ int i=r.nextInt(num)+1; System.out.println("销售面包数:"+i); num-=i; }else{ //通知生产者生产面包 this.notifyAll();//在这个程序里与notify()相同 try { this.wait(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } //生产者线程 class Maker extends Thread{ Store s; public Maker(Store s) { super(); this.s = s; } public void run(){ while(true){ s.make(); try { Thread.sleep(500); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } class Saler extends Thread{ Store s; public Saler(Store s) { super(); this.s = s; } public void run(){ while(true){ s.sale(); try { Thread.sleep(500); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
标签:thread tor todo pack pre sleep ram java except
原文地址:http://www.cnblogs.com/zyy1130/p/6850328.html